十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
jmeter脚本包含很多请求,而请求之间很可能存在某种关联。关联即为上下文之间的连接,通过前面请求得到的响应,作为后文的输入,以此根据前文不同的响应,做出不同的处理。
比如登录,登录时获取的token,可通过关联获取得到,后面的各种请求都需要以该token作为参数传送,才能正常访问页面资源。
jmeter关联的方式有三种,分别是正则表达式提取器,Xpath Extractor和JSON Extractor。
在取样器(如HTTP请求),选择后置处理器——正则表达式提取器,即可使用。
下面以提取初始token为例,讲述下如何提取所需信息。
先添加一个HTTP请求
点击运行,在结果树中查看响应信息。本例,我们需要提取的是data的值,作为token
在HTTP gettoken的请求中,添加正则表达式提取器,填入如下信息。
解释:
(1)引用名称:下一个请求要引用的参数名称,如填写token,则可用${token}引用它。
(2)正则表达式:()括起来的部分就是要提取的。此部分需了解正则表达式的方法,在此不细说。
(3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式(由多个括号提取),如$2$,表示解析到的第2个值,$1$表示解析到的第1个值。
(4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0。
(5)缺省值:如果参数没有取得到值,那默认给一个值让它取。
添加一个新的请求,该请求可获取上面的值作为token。引用格式为{token_g1}。g1表示提取的第一个值(如有多个token,g2表示第二个)。
然后点击运行,在结果树可看到,新请求中的token参数值与前文获取的data值一致,表示提取成功。
XPath Extractor是另一个可被用来提取页面给定内容的Post Processor(后置处理器),XPath Extractor的使用方式与正则表达式处理器类似,只不过需要在该Extractor中指定的不是正则表达式,而是给定的XPath路径
当提取的文本时页面上的元素时,Xpath Extractor比较方便好用。Xpath可在浏览器通过F12,获取所需元素的表达式。
JSON Extractor与Xpath Extractor很相似,光听名字就知道。对于响应结果为JSON格式的数据,用JSON Extractor进行提取会更为方便和优雅。上一个例子说明下如何使用:
假如需要从下面的url中提取userType的值,响应结果以json格式显示,可清晰的看到层级关系。
在登录的请求上添加JSON Extractor,Variable names给提取的变量设名称,JSON Path expresstions格式如下
如果该url的响应包含多个customerinfo,要提取第二个customerinfo里面的userType,可用$.data.customerInfo[1].userType的数组形式提取。
注:如需核对是否成功提取所需变量,可在线程组添加一个debug sampler,执行脚本后,查看结果树即可知晓
三种关联方式各有其适用范围,都掌握这些使用方法会在编写测试脚本时如鱼得水。
如获取HTML等资源时,选择Xpath Extractor更便捷,可快速提取具体元素的属性值;
如响应格式为JSON,选择JSON Extractor无疑更方便;
若进行接口测试,请求的响应不是页面元素的形式,则应用正则表达式进行提取。
睿江云官网链接:https://www.eflycloud.com/home?from=RJ0035
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。