首页 > 编程知识 正文

jmeter响应断言参数化,jmeter断言

时间:2023-05-04 07:23:50 阅读:243825 作者:3088

上一篇博文中讲了一下接口测试的简单实现,但是测试实施起来,操作很繁琐。这篇博文就讲利用响应断言和参数化配置,实现一次运行,就把所有的情况都能测试到。

这是一条用例,一条测试用例,肯定有个预期结果,通过相关文档,或是与相关人员沟通,我们能够得知,这条用例执行的预期结果,像我们现在就应该是:“登录成功!”,这个就是在用例还没有执行之前就知道一个预期的结果,那么执行用例的时候,就可以让程序自动匹配,实际的响应是否与预期的一致。为了便于区分其它接口,我们先给接口起个名称:

然后在改名后的登录接口上右击,添加——断言——响应断言:

然后配置断言

保存脚本,运行,然后查看运行结果:

看起来,和没有加断言的效果是一样的。jmeter的机制是这样的,如果断言和实际结果符合的话,用例会算作成功,即是成功,自然就不需要显示断言,如果断言和实际结果不符合,才会显示断言,并指出不符合的情况。我们看一下断言与实际结果不相符的情况,把登录接口的请求参数改一下

改一下断言文本

然后,保存,再运行,查看响应结果

可以看到用例执行失败了,点击叉叉前面的符号,可以展开

这里面就会提示,接口的实际响应数据,与断言“用户名或密码不正确!”匹配不上,所以用例执行失败。那实际响应结果是什么呢?点登录接口,然后看响应数据

我们就可以看到,实际的响应结果里面,用户名少了一个名,所以这条用例就执行失败了。

可以自动判断结果了,接下来就是做参数化了,先新建一个记事本,记事本中写入:

记事本中的一行,就是一条用例,用英文的逗号分隔开,有三个数据,第一个是用户名,第二个是密码,第三个是预期结果。注意,文件要以一个空行结束,可以按Ctrl+a全选,看一下

看到光标在最后的一个空行闪,就可以了。然后就是在jmeter中引入这个文件了,在线程组上右击,添加——配置元件——CSV Data Set Config,

添加完以后,这个配置文件,在线程组的最下面,读这些配置,肯定是在接口调用之前,所以,可以按住新添加的配置组件,拖到 登录接口 的上面

配置CSV Data Set Config

通常情况下,只需要设置文件路径,和保存数据的变量就可以了,文件编码、分隔符,用默认的就可以。下面的一些设置,英文好的应该能够看懂,是否允许引用数据,这个一般用False就行。读到文件末尾,是否重复读数据。读到文件末尾,是否停止线程。数据是否共享给其它线程。这里读取文件,每一行的数据,会有三个变量接收,就是第三行定义的,然后就是,这三个变量,需要到登录接口中使用,使用的方式就是:${变量名}

断言里的断言文本也使用变量

然后,记事本里,一共有8条记录,也就是有8条用例,那就要让脚本循环执行8次。在线程组的设置里,循环次数设置为8

保存脚本,运行,然后看运行结果

这个时候,就会看到,登录接口,执行了8次,最后一个失败了,这个我们前面知道了,是少了一个“名”字所以失败了。那么怎么知道,每次请求的数据,是不是用的记事本中的呢,可以看结果中的请求

可以看到请求的参数的值,正是记事本中第二行的数据。

不仅仅是参数和断言的文本可以使用变量,服务器的地址,端口号,路径里面,都可以使用变量,比如,我们写好了一系列功能的接口测试脚本,但是这个脚本可能会在多个环境中执行,比如有测试环境,预发布环境,从一个环境到另一个环境,服务器的地址都变了,甚至端口号也会变,那就所有接口都要改了,很麻烦,所以就可以在测试计划中使用一个全局的变量,所有接口里面都使用这个变量,如果环境或是端口号变了,只需要改一下变量的值就可以了

然后接口里就这样写

保存脚本,运行一下,结果和之前是一样的。至于路径里使用变量,这里就不演示了,参数化的使用就这些,但是生成参数的方式有几种,断言里面的知识也是非常的多,这些,后面讲啦

欢迎加入测试群:91425817,一起讨论测试的那此事。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。