当前位置:首页 » 《随便一记》 » 正文

Jmeter--【作为测试你必须知道】高级应用--断言、变量的使用+报告输出_清欢无别事

2 人参与  2021年11月14日 10:43  分类 : 《随便一记》  评论

点击全文阅读


         前面两篇我写了一些理论和一篇实战篇,不知道各位是否能理解。本章我们来讲讲一些其他的一些操作。

        博主在这里说明一下,接口是免费的,不过需要自己注册,如自己有接口的可以跟着教学一步步来,没有的可以考虑考虑加博主微信qing_an_an,与大伙一起学习,绝对不是广告,都是经过筛选才能加入,抱有一颗学习的心。有资源大家一起分享,有兴趣的可以来看看。


        jmeter的简单理论

        jmeter--实战篇


        本篇没有什么特别特殊的东西,只是一些比较常用,实用的一些东西,像输出测试报告,断言等等。接口的链接在jmeter--实战篇里面。自提吧。

断言

        我们先来了解一下jmeter断言:

        jmeter默认规则,只要能够正常请求,且正常返回,他都默认为成功。断言机制,是我们能否自动化的核心标准。我们在加入断言机制后,不需要人工比对响应内容,减少认为工作。

        接着上一章所讲,我们简单的做一个断言。先来看看上一章jmeter响应的内容是什么。

         这里响应数据还挺多。我们随意,随性一点,工作可不能随性。注意哈,博主不想带偏你们。我们在这里直接断言“city”:“深圳”,看看有什么样的效果。

        首先我们添加一个JSON提取器,这里是在后置处理器中添加的,为什么是在后置处理器中,讲个说笑的,你可以去前置处理器中看看有没有。只有跑了HTTP请求后才能拿到数据,这一点毋庸置疑的,如果你在前面添加了,那岂不是添加了一个空气。

        为什么要添加一个JSON处理器。这一点。因为返回值中就是JSON格式的,所以是JSON处理器。最简单直白的解释了。

        添加JSON提取器后,打开就是这样的了。names of created variables简单的理解就是你要断言的值是哪一个。JSON Path expressions就是表达式。${}这样的取值方式,记住即可。

         我们表达式里面提取的就是我们响应里面的city值。我们提取的值,那么肯定是要断言的。呢么我们添加一个JSON断言。

         添加断言后,我们直接双击打开

         Assert JSON Path expressions,我们添加之前的断言表达式到里面。这里系统默认是勾选下面的Match as regular expreesion,匹配正则表达式。我们自己还可以另外勾选上面的添加断言的对比值,也就是Addtionally assert value。在内容框中输入一个断言的对比值。

         这里可以看到我在深圳的HTTP请求中,添加这个一个断言,肯定会报错。这里我写入一个上海,在发送请求后,jmeter会进行判定,如果不是city不是上海则报错,如果是上海则pass。

         看结果,我写的断言是内容是上海,这里跑出来的是深圳,所以HTTP请求报错了,并且给出了明确的提示。是不是超级的nice。信息挺详细。

一次查询多地天气

        这里是一个非常有趣的东西,我们直接上教程,在jmeter中跑文件,查看多处的天气。

         准备一个csv文件,输入多个地区名,包括小地区。看看会是怎么样的一个情况。

        我们需要添加一个循环控制器,来控制它循环的次数,也就是csv文件中有多少条数据,我们就需要循环多少次。

         循环控制器之前我添加了一个用户自定义变量,便于更改地址。

         前面我添加了五条数据,所以这我循环五次。

         另外需要添加一个csv处理器

         添加好csv文件处理器后,我们直接设置HTTP请求。

         添加一行数据,用表达式取值。这里很多人看到了不一样的地方了,就是我的ip跟端口号都不一样了,用的表达式方式了。前面才说了用了用户自定义变量的方式。有益于后续更改地址的时候方便改值,你可以直接把路径一起到用户自定义里面去。

        我在HTTP名称那里也加了表达式,目的就是便于看懂那个请求是哪个请求,我们直接看结果

跑起来:

         这个接口存在bug,这也是我跑的过程中发现了,不知道各位有没有发现。

        另外看HTTP加表达式,就能得到这样的结果,每一个请求后面都有对应的名字。

小结

        我们用到的表达式,也就是变量,有什么好处?

        内容中只说到了一点点。变量可以一个场景多组变量调动,也方便我们更改变量值后直接发起下一波的请求,而不是改完这里接着改下一处。可以随时应对环境的变化。而csv文件这一块,也就是上文中我们讲到的读取多处天气情况。必须用到循环处理器,不然就只能读取到文件中第一个位置的天气情况。

报告

        这里的报告,和其他的地方不一样虽然也是自动生成的。生成jmeter的测试报告就一串代码

D:\Jmeter\apache-jmeter-5.3\bin\jmeter -n -t report_login.jmx -l result.jtl -e -o F:\jmeter报告\public\report
# D:\Jmeter\apache-jmeter-5.3\bin\jmeter  --这里是jmeter的位置
# F:\jmeter报告\public\report  --这里是文件的位置,文件夹名字随意
# report_login.jmx 这个是跑完后的事件

        那么其他的-n,-t等啥意思呢:

        -n 以非GUI方式运行Jmeter

        -t 获取我们的jmx脚本路径

        -e 脚本运行结果后 生成html报告

        -o 存放html报告目录

        result.jtl 文件保存路径(运行结果),此文件必须不存在

        比如我创建 的,我需要在F:\jmeter报告\public目录下cmd进去再输入这一串代码,也就是需要切换到这对应的文件夹中去。

        这就是生成的报告HTML形式的。

注:如有想法,欢迎一起来交流,非机构人员,群成员较少,只留有上进心的人员,大佬,刚入门的都有,微信号卸载了文章开头处。有兴趣的欢迎加入


点击全文阅读


本文链接:http://zhangshiyu.com/post/30853.html

断言  添加  表达式  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1