概述

今天用jmeter做一次参数化实战。通过计数器遍历参数表,然后查询jdbc进行beanshell断言。

涉及元件

用户参数,计数器,正则表达式,jdbc,beanshell脚本

详细过程

在我们的opms项目管理中,有一个项目状态的修正,四种状态分别为延期,挂起,进行,结束

jmeter-参数化与断言实战_ 参数化

在接口自动化案例中,我们需要对这四种状态进行遍历,然后进行断言,判断状态是否正确修改

我们通过抓接口,发现了传参的一个规律:除了项目id之外,四种状态的status分别是1,2,3,4

jmeter-参数化与断言实战_ 参数化_02

 我们把添加项目的返回id用正则表达式提取出来,作为项目状态接口的入参,参数名称为projectid,这个是主键id

jmeter-参数化与断言实战_ 断言_03

jmeter-参数化与断言实战_jmeter_04

 现在思考一下,接下来的四种状态,你要如何去操作才能全部执行一次并断言结果???

通常的做法是写四个接口,传四种参数,再添加四个断言,但是这种做法会造成大量的脚本冗余,在接口自动化中是会被鄙视的!如下:

jmeter-参数化与断言实战_jmeter_05

现在教大家用精简的脚本完成复杂的逻辑校验。

1:添加一个循环控制器,让它循环四次,可以遍历四种状态

jmeter-参数化与断言实战_ 参数化_06

2:添加一个用户参数,在参数表中配置四种项目状态

 jmeter-参数化与断言实战_ 断言_07

 3:添加一个计数器,上限为4,递增1,用来遍历参数表中的四种状态

 jmeter-参数化与断言实战_实战_08

4:添加一个http请求,在名称中遍历状态名;在入参中遍历状态值

jmeter-参数化与断言实战_jmeter_09

5:添加一个jdbc请求,通过变更的状态值和项目id组合查询的方式,验证每一次状态的变更是否正确的写入了数据库

jmeter-参数化与断言实战_jmeter_10

6:添加一个beanshell断言,判断我们数据库返回值是否为空,如果不为空,断言通过,否则断言失败

jmeter-参数化与断言实战_实战_11

7:运行脚本,在结果树中和log日志中观察执行效果

遍历了四种状态并断言

 jmeter-参数化与断言实战_ 参数化_12

 

 

jmeter-参数化与断言实战_实战_13

jmeter-参数化与断言实战_实战_14