Jmeter跨线程组获得token,加密签名

周末在家没事,将公司的登录接口和获得资产的接口拿出来练练手,用Jmeter编写,感觉Jmeter和postman很多地方差不多,现在将编写的过程记录如下:

1.我总共写了2个线程组,3个接口,具体如下图:

登录线程组包括接口:1.登录  2.新设备认证

挖矿线程组包括接口:1.获得用户的BTC资产(PS:其他接口还没写,目前只是将两个线程组的签名调通,第二个线程组可以拿到数据了)

2.首先需要新建测试计划,可以修改名称,注意需要勾选【独立运行每个线程组】

3.右击测试计划,新建HTTP请求默认值,填写接口的【协议】和【服务器名称或IP】

4.因为接口需要传deviceId,所以我又在测试计划中新建了一个随机变量的配置原件,随机生成deviceId,后面接口直接调用就可以了

5.右击测试计划,新建setUp线程组,这里我将线程组的名称改为了登录

线程属性  线程数:1,Ramp-Up时间(秒):1,循环次数:1

6.在setUp线程组上新建【HTTP信息头管理器】,将header中需要传的内容写在信息头管理器里面

7.在setUp线程组上新建【查看结果树】和【调试取样器】,我们可以通过查看结果树看各个接口的请求以及返回

8.在setUp线程组上新建【HTTP请求】,修改名称为登录,填写HTTP请求方法和路径

如上图:消息体数据中的内容,我是用charles抓包获得的,其中password是加密后的值,deviceId就可以直接从随机变量中获取,通过查看结果树,我们可以看到返回中有一个字段为token,下一步我们就要取出这个token的值

9.需要获取登录接口的token,就需要在登录接口下新建【正则表达式提取器】,具体填写内容如下图,就可以取出返回结果中的token值了

10.在setUp线程组上新建第二个【HTTP请求】,修改名称为新设备认证,填写HTTP请求方法和路径,其中deviceId直接从随机变量中获取,token是从登录请求的返回中获取,用${token}表示

通过查看结果树,可以看到新设备认证的接口会返回accessToken和deviceSecret这两个字段,后面sign的签名中需要这两个值,所以我们也要通过正则表达式提取器取出来

11.需要获取新设备认证接口的accessToken,就需要在新设备认证接口下新建【正则表达式提取器】,具体填写内容如下图,就可以取出返回结果中的accessToken值了

12.获取新设备认证接口的deviceSecret,同理如下

13.我们可以在新设备认证这个HTTP请求下添加【调试后置处理程序】,这样就可以在查看结果树中打印正则表达式提取器中提取的token、accessToken、secretKey

14.在新设备认证的HTTP请求下新建【BeanShell后置处理程序】,将提取的accessToken、secretKey、deviceId设置为全局变量,第二个线程组挖矿就可以使用了

15.当查看结果树的接口为绿色,返回值都正常时,证明接口都通了

16.在测试计划中新建第二个线程组【挖矿】,具体设置内容如下图:

17.新建【HTTP信息头管理器】,注意:header里面的内容可以从抓包中获取,token为全局变量中的newtoken,可以用${__P(newtoken)}获取,deviceId为全局变量中的deviceId,可以用${__P(deviceId)}获取,sign在下面的BeanShell预处理程序中获得,因为是同一个线程组,所以是用${sign}获得

18.在挖矿线程中新建HTTP请求,抓包看是个get请求,参数只有一个unit,具体配置如下图

19.因为上面的接口是需要签名验证的,所以需要新建【BeanShell预处理程序】来获得sign,我们公司的接口是将token+secret+path进行sha256加密的,我这里加密算法的代码是用java写的,然后导出为jar包,放在/lib/ext下面

具体的java加密代码查看如下:

注意:

BeanShell预处理程序中获得全局变量newtoken的方法为String token=props.get("newtoken");

获得全局变量secret的方法为String secret=props.get("secret");

我们可以通过log.info(token);  log.info(secret);将值打印在控制台方便我们定位问题

20.在HTTP请求上添加【调试后置处理程序】和【BeanShell 后置处理程序】,查看结果树中查看sign的加密值

21.我们可以通过查看结果树的接口是否为绿色,请求request header中的值token和sign的值是否正确,响应数据中Response Body的返回值是否正常来判断第二个线程组的接口是否通了

如下截图,接口返回的值正常即表明获得用户的BTC资产接口ok了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335