之前我们的用例数据都是配置在Jmeter Http请求中,每次需要增加,修改用例都需要打开jmeter重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?
其实我们可以将用例的数据存放在csv
文件中,然后通过csv文件配置来读取用例中的数据,执行测试。用例数据如下图所示:
这里以httpbin接口为例,创建用例文件:jmeter-testcase.csv
用例名称变量含义:
${caseSeq}
:用例编号${apiType}
:api类型${apiSeq}
:api版本号${apiName}
:api名称${priority}
:优先级${url}
:api路径${methods}
:请求方法${parameter}
: 请求参数${expectValue}
:期望值,用于断言1.新建一个线程组,命名为:数据驱动
2.创建一个http请求默认值,设置如下:
3.添加一个循环控制器
步骤为:线程组——添加——逻辑控制器——循环控制器。循环控制器的作用可以控制整个用例循环执行的次数。默认值是1
根据用例数量可以修改为4
4.在循环控制器节点下创建CSV文件设置,具体配置内容如下:
5.创建一个if控制器,步骤为:线程组——添加——逻辑控制器——if控制器
if控制器的作用为根据不同条件执行不同的用例,例如这里根据不同的接口请求类型,分别创建了GET
和POST
两个控制器。
GET
设置的条件语句如下:
条件语句为:"
参数:
true
(忽略大小写),这里我们取消勾选状态。POST
条件语句设置为:"${methods}"=="POST"
6.创建GET
请求类型的用例如下
用例名称格式:{caseSeq}_ {apiSeq}_
断言设置如下:${expectValue}
引用csv中对应的值。
最后添加查看结果树,然后运行可以看到如下运行结果:
7.POST
用例设置和GET
类似,不过参数请求不一样,是在body
中。另外请求方式为:POST
运行结果如下:
8.最后在线程组添加一个查看结果树,执行可以查看全部用例执行情况。
通过这样的数据驱动,当面对大量用例时在jmeter设置就非常方便,后续的用例维护也非常高效,因为不用在jmeter一个个去单独修改用例了。