您的位置:首页 > 移动开发

Loadrunner和Jmeter移动端录制脚本以及token的处理

2018-06-08 16:51 75 查看
版权声明: https://blog.csdn.net/weixin_39868323/article/details/80625360
***Loadrunner 录制移动客户端脚本***

1.首先保证移动端和电脑在同一个网段。查看电脑Ip, 用这个ip设置手机代理和端口。

2.打开Loadrunner(我用的版本是12.53),创建一个新的脚本,选择Mobile>Web-HTTP/HTML。

3.选择录制按钮,在Start Recording页面选择Remote Application via LoadRunner Proxy, 端口号8899. 点击Start Recording.

4.然后开始操作移动端。

5.录制结束后发现关键的订单提交请求没有录制成功。(更奇葩的是公司的几台电脑只发现一台能录制成功,对loadrunner移动端录制功能也是醉了!!!)

偶然看到给视频是关于Jmeter录制移动端脚本,于是乎改用jmeter录制,没想到jmeter不但不挑电脑,录制的请求还非常完整。Very good!!!下面说一下如何用jmeter录制脚本。

***Jmeter 录制移动客户端脚本***

1.新建一个jmeter脚本,在测试计划下添加一个线程组,然后在工作台选择添加>非测试原件>HTTP代理服务器。

2.开始配置代理和端口,在目标控制器选择测试计划>线程组。RequestsFiltering还有过滤功能,因为我们这个脚本请求比较少,没有用到,如果interesting大家可以百度自行查询。

3.点击启动。然后开始录制脚本。下面是我录制的脚本。

4.然后按照Loadrunner的格式把其余几个loadrunner没有录上的请求补充上,这样一个录制的完整脚本就基本get到了。下面是补充的几个post请求的脚本。

5.问题来了,过了一会回放发现数据库没有入库成功!!!大脑数百万的神经元细胞紧张
运转了24小时,发现是token惹的货。。。token失效了。。。于是乎发现每次替换服务器返回token值,可以绕开这个问题,不过这并非长久之计。于是考虑关联。但是这个返回的数据太奇葩了,json还带转义字符,loadrunner返回的结果就更奇葩了,还带两个转义字符。如下分别是loadrunner和jmeter入的返回值。

师傅大脑数百万的神经元细胞紧张运转了48小时终于搞定了loadrunner的关联问题(这坑足够深,一般人估计出不来,哈哈)。双引号前面狂加\\,终于可以搞定了!!!下面是关联部分的代码:

web_reg_save_param_ex(
“ParamName=sessionid”,
“LB/BIN=token\\\”:\\\”“,
“RB/BIN=\\\”“,
“NotFound=warning”,
SEARCH_FILTERS,
“Scope=Body”,
LAST);

把脚本所有的token值都替换成{sessionid},运行脚本,可以成功入库了。

然后就是参数化,压测,这些将在以后的文章中介绍,这些虽然不难,但是参数的设置还有很多小窍门,对师傅每次都心算搞定几百万的大数据的参数化设置问题,深表膜拜!!!

下面说一下用 Jmeter处理关联token的问题:

虽然看过一下jmeter处理token的问题,但是遇到实际问题的时候还是一脸懵逼!!!这个脚本每个请求都有一个http信息头管理器。Token就是通过http信息头管理器传递的。下面是jmeter的原始脚本(禁用的除外):

经过分析发现后面的http请求都是用登陆请求返回的token值。于是乎,新建一个正则表达式,并且添加debug sampler。因为jmeter返回的token的json值带有转义字符,需要加转义,于是乎,在每个双引号前加了转义字符,还要特别注意的是检查的相应字段一定要选择主体,选择响应信息,响应代码都没有取到token.

执行脚本,发现debug sampler 返回了三个token值,我们取token_g1. 于是乎把下面所有请求的http信息头管理器的token值都用{token_g1}替换。

运行脚本,查询替班车间成功~再也不是那个让我心碎无数次的响应超时了,token值成功传递,哦也~

最后可以选择一个报文头最全的Http信息头管理器,放在脚本最上面。脚本所有请求都公用这个Http信息头管理器。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: