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

2019-01-03  本文已影响0人  e5bda6e7a596

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

一、简单的单行数据比对


 比如现在我们设计第一条用例是这样的


设计的一条csv用例

 其中预期的结果是这样的

sql的预期结果

 在jmeter运行一下,看看结果:


数据库结果 csv用例上的预期结果

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

添加了\t的修改后

修改后运行通过



 动了手脚之后你会发现,要是需要你比对多行数据库的数据,怎么办?难道你一个一个去加“\t”吗?有马飞就会说,我有能力啊,我可以写段java代码自动添加,那估计是你的本事到位了。当然,要是你的测试场景比较简单,选择这样的方式也是可以的。
 反正,方法有很多,代码这个方法固然行得通,但是jmeter有更好的方向让你选择。

二、面对多行数据比对


1、

 刚才说jmeter有更好的选择,那究竟是啥呢?

【思路一】
经过参考了另一位马飞对jmeter控件的介绍,可以运用的方法之一就是

传送门:https://blog.csdn.net/u012167045/article/details/72638507

就是把数据库查出来的每个字段,以自定义变量的形式去展示,但是需要自己去定。就像这样(引用):

  jmeter官网给的解释是:如果给这个参数设置了值,它会保存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行

脚本这样去设置


自定义变量

参照上面去引用就行,可以通过代码去比对字符串。

脚本引用自定义变量


2、
 做过web接口测试都了解过,比对的数据大多数都是json格式的,要是还用方式一的话,显得过于麻烦,为何不直接来一个json的格式去比对呢?

   参照网上的一些方法,我进行了一些修改:


结果集的形式 对比方法 响应断言的变化

【有必要的话需要自己去导关于json的包】

导包方法传送门:http://www.cnblogs.com/BlueSkyyj/p/8819512.html



在csv就可以运用json格式进行修改:

csv用例通过json格式去展示结果



最后的结果展示:

单行数据对比展示

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

数据库有两条数据 多行数据对比

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

上一篇下一篇

猜你喜欢

热点阅读