利用神州灵云apptrace抓取到的APP数据反向给做Jmeter接口测试(一)

版权声明:本文为神州灵云作者的原创文章,未经神州灵云允许不得转载。

本文作者:陈正林(志云),高级测试工程师,神州灵云首席测试。

前提:准备一款手机APP,嵌入神州灵云公司sdk,使其操作产生的数据发送到神州灵云apptrace平台上;本文就以开源的月光茶人APP(ios)程序为例,讲述如何用sdk采集到数据提供给jmeter做接口或压力测试;

1,首先操作手机月光茶人app执行一个完整的购买支付流程,我们在apm查看其产生的url为下图:
在这里插入图片描述
2,图中登录、首页列表、产品列表、加入购物车、成功加入到购物车、加入预购订单、预购订单详情、选择支付、订单提交成功 这9步构成;我们把这9步的http请求逐一加入到jmeter里面
在这里插入图片描述
3,通过URL分析,发现其他步骤会用到登录后产生的返回体里面appCartCookieId和appLoginToken动态参数,所以我们要在登录请求后面加入正则表达式提取器 来提取,它返回的参数
在这里插入图片描述
.“appCartCookieId”:”(.+?)”. 代表从appCartCookieId:后面括号里面进行匹配,截止到 双引号
表示 当有多个正则表达式时,只获取第一个,匹配数字1,表示从第一个开始;匹配数字,-1表示取出所有匹配值 0是随机,1 、2 表示匹配第几个
如果有多个值和appCartCookieId匹配,一定要用这种形式来选择值,若有极端情况,有多个匹配值且位置不定,返回体如下面:

“address”:{“area”:{“store_id”:”1”,”shippingGroup”:”“,”pathNames”:”中国/广东省/深圳市/宝安区/福永/福围-下沙南”,”name”:”福围-下沙南”,”id”:”1000000”,”pathNames4Print”:”深圳市宝安区福永福围-下沙南”},”isDefault”:”1”,”telephone”:”18812341234”,”id”:”100347013e14430696ec765ff464429c”

要取”18812341234后面的id,可以写成”18812341234”,”id”:”(.+?)”.也可以写成”1[3|4|5|8][0-9]\d{4,8}”,”id”:”(.+?)”. 记住有的手机号正则表达式是:1[3|4|5|8][0-9]\d{4,8},但如果正则表达式中有^和$,他们表示行开始和结束,要去掉这两个符号;

4,接下的步骤就可以引用这两个参数,如下图可以写成parameters里面引用参数,也可以直接在body data里面编写多个参数,多个参数用&来连接
在这里插入图片描述
5.如果想在路径里面使用上一个请求产生的参数,body data或者parameters必须带上这个参数,哪怕请求body体用不上这个参数
在这里插入图片描述
6.最后添加用于查看结果的“查看结果树”和“聚合报告”,在“查看结果树”里面可以详细看到响应的数据、请求数据、取样结果等信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
聚合报告汇总了接口访问总量错误信息等关键指标
在这里插入图片描述
7.也可以把神州灵云apptrace平台获取的header添加到jmeter里面
在这里插入图片描述
在这里插入图片描述
这样做的好处时,使模拟的更真实,在apptrace平台面查看业务请求,可以看到设备显示为iphone了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dcling1309/article/details/82796411
今日推荐