jmeter接口测试—xpath提取器

jmeter接口测试—xpath提取器,第1张

    (1)有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面。并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数。例如tinyshop商城。

那么接下来就是提取这个tiny_token_的value值

(2)用xpath提取器获取tiny_token_的值,用xpath定位方法定位到该元素的相对路径,表达式为://[@id="search-form"]/input[3]/@value

(3)引用的步骤与正则表达式的一致,${token}

业务场景:在电商系统中多个商品加入购物车后,需要选择购物车中的商品进行购买,在订单结算页面需要用到购物车中的商品数据,用到的参数会有公司编号、商品编号。本次采用json提取器来实现提取接口多个值。

商品加入购物车后,购物车接口返回数据如下,需要获取companySysNo和productSysNo变量给下一个接口使用

根据返回json数据,设置好获取变量的值,因为返回的数据中会有多个公司的多个商品,因此用[]表示获取所有的数据,多个变量时Match No和Default Values必须要和获取变量数据一致否则变量获取不到值导致下一个引用变量的接口报错。

为了方便查看返回值的内容,需要增加一个后置处理器Debug PostProcessor,运行后在查看结果树中可以查看变量值对应的内容

在选择购物车的商品时,由于商品有多个,所以在引用变量时不能直接用${companySysNo},必须要根据debug中返回的数据使用第几个本次使用的第一个变量引用改为${companySysNo_1}就可以获取到数据

由于Default Values没有设置值导致获取不到变量值报错

案例场景:在测试创建订单使用系统的企业支付时,需要获取到创建订单后的订单编号才能支付,在jmeter里面可以直接提取上一个接口json里面的值(sysno)作为下一个支付接口的入参。我现在有一个创建订单接口A,创建成功后会返回一个sysno值。企业支付请求接口B必须要获取到接口A返回订单编号才能支付。这里介绍一下jmeter使用后置处理器json extractor获取你想要得到的值,根据上一个接口具体返回的json格式去自定义json path expressionsjson路径表达式。

A接口创建订单接口文档基本信息

请求类型:POST

请求头部:application/json

请求参数:[{"soType":0,"distributorSysNo":100001,"receiverInfo":{"receiveAddress":"收货地址","receiveAreaSysNo":2620,"receiveContact":"联系人","receivePhone":"15878788784"},"products":[{"productSysNo":42753,"quantity":2,"memo":null,"expectDeliveryDate":null},{"productSysNo":41681,"quantity":1,"memo":null,"expectDeliveryDate":null},],"customerMemo":客户备注信息,"deliveyType":54}]

A接口的请求和返回的报文信息如下

B接口企业支付的接口文档基本信息

请求类型:POST

请求头部:application/json

请求参数:{"orderSysNos":["${ordersysno}"],"soSysNo":"${ordersysno}","payTypeId":"balancepay","orderType":0,"balancePwd":"123456"}

创建订单请求

JSON提取器

注意:添加后置提取器时一定要放在>

以上就是关于jmeter接口测试—xpath提取器全部的内容,包括:jmeter接口测试—xpath提取器、jmeter如何采用json提取器提取多个值、jmeter提取json数据进行接口参数关联等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9272622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存