JMeter学习-016-思路篇之-山重水复柳暗花明
首先,此文非技术类博文,为思路类的博文,敬请参阅,欢迎共同探讨!
今天在编写 JMeter 接口监控脚本时,遇到了一个问题,在解决问题的时候,思路出现了偏差,导致了自己在解决问题时,绕了弯,浪费了些时间。换句话说,是自己当时解决问题的思路出现了定式思维,没有及时变通,矬了 ^_^。具体的问题场景如下。
日常测试开发工作中,测试脚本对应的场景有很多,其中必不可少的场景就是重要的状态码验证。此时,不同的状态码对应着不同的页面显示,以及后续不同的业务逻辑处理操作,因而测试脚本需要对不同请求对应的请求响应中不同的状态码进行判断,以判断经过之前的操作后状态码的变更是否正确,若正确则可继续执行后续相关的验证操作,否则终止后续相关联的操作,进而发送通知给产品组的相关成员,以及时进行处理。那么如何获取、判断状态码正确与否呢?下面以电商网站中订单状态码为例,进行简单描述我当时解决此问题的思路,步骤如下:
第一种:通过断言直接判断验证码
操作方法:获取订单列表,直接设置响应断言。
此种判断方式,非常的简单,只需在请求响应中设置断言即可。但此判断方法有一个极大的限制条件(订单列表中返回的所有订单状态不允许有相同的状态),否则此种判断方式无法确定要判断订单状态是否正确(若要判定订单的状态不是期望状态,而其他订单的状态却存在了期望状态,则此判断方式错误)。
第二种:订单列表中获取订单状态后通过逻辑控制器等进行判断
操作方法:获取订单列表,通过 正则表达式提取器 获取对应订单的订单状态(通过正则提取器获取状态方法,敬请参阅之前的博文:单参获取、多参获取,多参引用),然后通过 Bean Shell Assertion、BSF Assertion 等方式对订单的状态进行判断,验证是否符合预期,从而通过逻辑控制器控制是否执行后续操作。
此种判断方式稍显复杂,且需要一定的脚本基础,建议各位朋友研究一下,提升一下自己的脚本能力。
第三种:订单列表中获取订单状态后通过断言进行判断
操作方法:通过正则提取器获取订单信息,例如从订单编号开始获取到订单状态之前的字符,然后拼接期望状态后,将拼接的字符串设置为断言即可。例如订单数据信息如下所示:
{"errno":0,"data":{"single_coupon":"","cash_per_month":0,"order_id":"34567890","order_char_id":"1234567890","status":-2,"receiver_tel":"","receiver_addr":"华夏","receiver_mobile":"1234567890","shipping_cost":0,"shop_guide_cost":"0","businessId":2,"dealType":2,"buy_total":3,"order_cost":14700,"coupon_code":"","coupon_amt":0,"pOrderId":"0101234567890","subOrderNum":0,"subOrderIds":[]}}
那么正则提取器对应的正则表达式为:
order_id":"${order_id}","order_char_id":"12${order_id}","status":
正则提取器对应的模板为:$0$
最终获取的订单信息为:order_id":"34567890","order_char_id":"1234567890","status":
断言的信息为(假定此时订单状态为:4):order_id":"34567890","order_char_id":"1234567890","status":4
此种方法与第二种的方法类似,不同之处在于提取域(第二种提取的是单独的一个订单状态,此处取的是订单信息)、判断方式(第二种是通过其他方式进行判断,此处直接使用断言),此种较为简单,推荐。
第四种:通过订单详情数据判断
操作方法:请求对应订单的订单详情,直接设置响应断言(例如:"status":4)进行判断。
此种判断方式,同样简洁,同样只需在请求响应中设置断言即可,而且保证了订单的唯一性,不存在其他订单干扰的情况发生,建议采取此种方式。
PS:解决问题的过程中,也尝试过其他的验证方式,在此不再一一赘述,以上是我自己想到的比较有效的方法,藉此分享给大家。若是有更好的方法,欢迎告知,不胜感激!
至此, JMeter学习-016-思路篇之-山重水复柳暗花明 顺利完结,希望此文能够给初学 JMeter 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
JMeter学习-016-思路篇之-山重水复柳暗花明的更多相关文章
- jmeter学习之安装篇(一)
一.Jmeter简介 Jmeter是Apache组织开发的基于Java开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. Jme ...
- JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇
前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获 ...
- JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log
前面三篇文章分别讲述了 HTTP Mirror Server . Debug PostProcessor 和 Debug Samper 的脚本调试实例.此文主要讲述第四种调试方法,通过 BeanShe ...
- JMeter学习-036-JMeter调试工具之三---Debug Sampler
前面两篇文章分别讲述了 HTTP Mirror Server 和 Debug PostProcessor 的脚本调试实例.此文主要讲述第三种调试工具:DebugSampler,其主要是查看JMeter ...
- JMeter学习-018-JMeter 配置元件之-HTTP信息头管理器-实现 Cookie 登录
之前写过一篇通过[HTTP Cookie管理器]实现登录态操作的文章,使用时需要配置每个键值对(如下图所示),相对来讲配置比较繁琐.其实,我们也可通过在[HTTP信息头管理器]添加 Cookie 信息 ...
- Java工程师学习指南 完结篇
Java工程师学习指南 完结篇 先声明一点,文章里面不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦. 因为笔者还只是一名在校 ...
- Java工程师学习指南 中级篇
Java工程师学习指南 中级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我写的文章都是站 ...
- Java工程师学习指南 初级篇
Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
- Java工程师学习指南 入门篇
Java工程师学习指南 入门篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
随机推荐
- Java_BigDecimal类型比较大小
这个类是java里精确计算的类 1 比较对象是否相等 一般的对象用equals,但是BigDecimal比较特殊,举个例子: BigDecimal a=BigDecimal.valueOf(1.0); ...
- MyEclipse 10 之下Web Service 的创建和实现
(一)Web service服务端开发 1. 新建一个Web service project, 菜单New -> Web Service Project, 2. 新建一个 Java Bean, ...
- iis浏览网页时提示无法显示 XML 页
无法显示 XML 页. 使用 样式表无法查看 XML 输入.请更正错误然后单击 刷新按钮,或以后重试. 处理资源 'http://localhost/ 时出错.第 1 ...
- 【iCore2 模块相关资料】发布模块DEMO 代码包,目前支持 iM_TFT30、 iM_LAN和 iM_RGB 三个模块
iCore2 模块底板 和部分模块发布了,所以我们做了一个 DEMO 代码包,此代码包现在有以下功能: 1.支持 iM_TFT30 3寸触摸液晶模块(硬件已发布): 2.支持 iM_LAN 100M以 ...
- 【新产品发布】【iCore2 ARM / FPGA 双核心板】
iCore2是一款包含ARM / FPGA两大利器的双核心板.ARM方面,采用意法半导体高性能的32位Cortex-M3内核STM32F103VE微处理器,主频达72MHz,并包含丰富外设接口.FPG ...
- js性能优化的小知识
避免全局查找 function search() { //当我要使用当前页面地址和主机域名 alert(window.location.href + window.location.host); } ...
- 【转】Windows7系统下硬盘安装全新更高版本Windows7
原文地址:http://jingyan.baidu.com/article/656db918aee053e381249c06.html 1.下载windows7 7600 ISO镜像(RC或RTM), ...
- maven-surefire-plugin总结
Maven通过Maven Surefire Plugin插件执行单元测试.(通过Maven Failsafe Plugin插件执行集成测试) 在pom.xml中配置JUnit,TestNG测试框架的依 ...
- [听听音乐]love is blue
在朋友圈里听到这首歌,好像是中央台天气预报用过的背景音乐.百度了一下,大致如下: 1967年,在维也纳举行的欧洲电视歌唱大赛,卢森堡歌手薇基·琳德洛丝(Vicky Leandros)演唱了一首由彼埃尔 ...
- ThinkPHP 3.2 版本升级了哪些内容
ThinkPHP 3.2 版本升级了哪些内容 ThinkPHP 3.2发布了挺长时间了,这里也总结下这次ThinkPHP 3.2到底发生了哪些变化,方便程序员们进行开发. 前言 T ...