本篇文章介绍利用Jmeter 实现数据+关键字驱动的一种接口测试方案,主要想和大家讨论接口测试用例如何设计及使用何种测试工具或方法才能更有效的进行接口测试。
什么是接口测试?
我们这里说的接口是指程序之间提供服务的软件接口。接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
那为什么进行接口测试呢?大家可能听说过测试金子塔,最底层是单元测试,中间层是接口测试,最上层是UI测试。相对于UI测试,接口测试能更早的发现问题,它比UI测试粒度更细,更能发现底层问题,它发现和解决问题的效费比更高,所以进行接口测试是有必要的。
数据驱动框架:
利用Jmeter 建立数据驱动测试是比较简单的,首先使用Jmeter 根据自己业务建立测试计划.然后将测试计划中所有业务流程的"Hard Code"测试数据,全部参数化实现。在这里我们使用Jmeter 中"CSV Data Set Config "配置元件从CSV文件中获取数据。
举例:假如我们有一个接口,输入一本书的ID信息,返回书名及这本书的价格:
HTTP请求的数据:
{
"bookid": 1
}
服务器返回的响应数据:
{
"bookname": "Jmeter"
"bookprice": 23.5
}
那如果我们想用不同的数据测试API的话,那就需要对请求数据进行参数化设置。
Jmeter实现步骤如下:
1、首先在测试计划中添加一个线程组-然后右击线程组添加一个Sampler (HTTP 请求)
2、再建议一个CSV Data Set Config 配置元件如下图:
……
关键字驱动框架:
主要思路是可以为每一个关键业务流程建立一个关键字。Jmeter 利用关键字分别调用不同的业务流程,从而实现对相应的业务逻辑或接口的测试。
举例:假如我们有一个订飞机票的Web程序,在这个程序里用户可以注册一个账户,然后利用这个账户去订票,查看相应的飞机票及取消订票等操作。所以我们可以根据上面需求为下面不同的接口定义一个关键字,每个关键字实现了相应的功能。
· Register New User
· Login
· Logout
· Book Ticket
· Edit Ticket
· View Ticket
· Cancel Ticket
· Forgot Password
下面我们就可以设计相应的测试用例,让Jmeter直接读取这些测试用例的关键字,从而实现对相应的业务流程覆盖。如下图用例TC001,需要注册一个账户并用此账户订票后退出,那Jmeter就需要调用Register New User,Book Ticket,Logout三个关键字从而实现了对此用例的执行。
……
出自《51测试天地》原创测试文章系列(四十五)