Jmeter进行接口自动化测试实战-学习分享
程序员文章站
2024-03-22 08:01:33
...
进行接口测试最难的部分不就是去比对你需要比对的数据吗?因为你永远不知道,面对你的数据是长什么样的。
一、简单的单行数据比对
-
比如现在我们设计第一条用例是这样的
-
其中预期的结果是这样的
- 在jmeter运行一下,看看结果:
- 在这儿就有很大的疑问了,明明是两个一样的结果,为什么比对会失败呢?后来,我分析可能的原因之一就是预期结果里面有空格,而数据库的数据是以**“\t”**的表格形式存在的,所以我想先在csv文件里面动动手脚,验证一下我的想法。
![添加了\t的修改后](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTYxNzcwMi04MjY3YmJmODEwMGMzYzA4LnBuZw?x-oss-process=image/format,png
- 动了手脚之后你会发现,要是需要你比对多行数据库的数据,怎么办?难道你一个一个去加“\t”吗?有马飞就会说,我有能力啊,我可以写段java代码自动添加,那估计是你的本事到位了。当然,要是你的测试场景比较简单,选择这样的方式也是可以的。
反正,方法有很多,代码这个方法固然行得通,但是jmeter有更好的方向让你选择。
二、面对多行数据比对
刚才说jmeter有更好的选择,那究竟是啥呢?
【思路一】
经过参考了另一位马飞对jmeter控件的介绍,可以运用的方法之一就是
传送门:https://blog.csdn.net/u012167045/article/details/72638507
就是把数据库查出来的每个字段,以自定义变量的形式去展示,但是需要自己去定。就像这样(引用):
meter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,C,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
脚本这样去设置
参照上面去引用就行,可以通过代码去比对字符串。
做过web接口测试都了解过,比对的数据大多数都是json格式的,要是还用方式一的话,显得过于麻烦,为何不直接来一个json的格式去比对呢?
- 参照网上的一些方法,我进行了一些修改:
【有必要的话需要自己去导关于json的包】
导包方法传送门:http://www.cnblogs.com/BlueSkyyj/p/8819512.html
在csv就可以运用json格式进行修改:
最后的结果展示:
顺便给出多行数据对比的情况:
这样的话,面对多行数据的比对,我们就以json格式去扩展字段,美滋滋!
上一篇: 持续集成环境的搭建(一)
下一篇: JD用户购买意向预测-数据发掘