90%测试猿都想学的Jmeter技能,你get吗?( 二 )


 
怎么办呢?
很多人,就卡在这了,不知道怎么办了 。
其实,我们想一下,现在是内容读取出来了,但是内容是原样进行请求,没有对内容中的函数进行执行,现在的问题,只需要解决 body 中的函数,能被运行就可以了 。
我们再想下,在 jmeter 中,有哪些可以运行函数的方法?jexl3 函数可以,groovy 函数可以 。
Exl3 函数jexl3 函数,是要运行一段代码,返回代码结果,我们的 body 是 JSON 格式,显然不能直接运行,要想运行,还得写 JAVA 代码调用 JSON 运行才可以,非常复杂 。
groovy 函数,是要运行一个表达式,显然,也不行 。
那还有没有其他的函数呢?eval 函数,这个函数,返回的是字符串表达式运行的结果 。

90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 
此时,我们修改下我们 jmeter 中取样器的请求体 。
90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 

90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 
看,运行结果,函数被执行了,注册的账号动态变化了 。
接下来,我们就把第 2 条用例,使用了关联,也写出来 。
90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 
现在,我们已经实现,在 jmeter 中,使用一个取样器执行 2 个不同接口,并且动态参数值的自动化运行了 。
现在,我们再把断言加上 。
90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 
注意:断言中,如果有中文,就要特别注意文件编码
现在,我们再加大难度,在 CSV 文件中写个 GET 接口 。
 
90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 
我们发现,多个接口请求方法不一样,jmeter 肯定不能用 1 个取样器了, get 请求没有 body 参数,但是,请求头要添加一个 Token 参数 。
是不是一下楞圈了,不知道怎么动了?看懂下面的图,你就知道怎么做了 。
90%测试猿都想学的Jmeter技能,你get吗?

文章插图
 
在取样器的前面增加一个条件判断,判断是请求方法,根据请求方法,执行 POST 取样器或 GET 取样器
然后,把循环次数设置为 CSV 文件条数一致,其他的地方,应该就比较容易理解了 。
 
END
看最后,多条测试用例,只用 2 个取样器就搞定了 。以后,改动 CSV 文件,可能都不用动 jmeter 脚本,增加测试用例,改下循环控制器数量就可以了 。
 
当然,这还不是最完美的,里面还有诸多不足 。给想用 jmeter 做接口自动化测试的同学开了个头,更多的,还需要同学们自己动手,也欢迎同学们,在文章后面留言讨论 。
 
注意,这篇文章的技术,只适合在自动化中,不能用这个脚本进行性能测试 。




推荐阅读