欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jmeter进行接口自动化测试实战-学习分享

程序员文章站 2024-03-22 08:01:33
...

进行接口测试最难的部分不就是去比对你需要比对的数据吗?因为你永远不知道,面对你的数据是长什么样的。

一、简单的单行数据比对


  • 比如现在我们设计第一条用例是这样的
    Jmeter进行接口自动化测试实战-学习分享

  • 其中预期的结果是这样的

Jmeter进行接口自动化测试实战-学习分享

  • 在jmeter运行一下,看看结果:
    Jmeter进行接口自动化测试实战-学习分享

Jmeter进行接口自动化测试实战-学习分享

  • 在这儿就有很大的疑问了,明明是两个一样的结果,为什么比对会失败呢?后来,我分析可能的原因之一就是预期结果里面有空格,而数据库的数据是以**“\t”**的表格形式存在的,所以我想先在csv文件里面动动手脚,验证一下我的想法。

![添加了\t的修改后](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNTYxNzcwMi04MjY3YmJmODEwMGMzYzA4LnBuZw?x-oss-process=image/format,png

Jmeter进行接口自动化测试实战-学习分享

  • 动了手脚之后你会发现,要是需要你比对多行数据库的数据,怎么办?难道你一个一个去加“\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

脚本这样去设置
Jmeter进行接口自动化测试实战-学习分享

参照上面去引用就行,可以通过代码去比对字符串。
Jmeter进行接口自动化测试实战-学习分享

做过web接口测试都了解过,比对的数据大多数都是json格式的,要是还用方式一的话,显得过于麻烦,为何不直接来一个json的格式去比对呢?
  • 参照网上的一些方法,我进行了一些修改:
    Jmeter进行接口自动化测试实战-学习分享

Jmeter进行接口自动化测试实战-学习分享

Jmeter进行接口自动化测试实战-学习分享

【有必要的话需要自己去导关于json的包】
导包方法传送门:http://www.cnblogs.com/BlueSkyyj/p/8819512.html

在csv就可以运用json格式进行修改:
Jmeter进行接口自动化测试实战-学习分享
最后的结果展示:
Jmeter进行接口自动化测试实战-学习分享

顺便给出多行数据对比的情况:

Jmeter进行接口自动化测试实战-学习分享

Jmeter进行接口自动化测试实战-学习分享

这样的话,面对多行数据的比对,我们就以json格式去扩展字段,美滋滋!