Jmeter +Eclipse测试火币网REST API 实战案例(上)
Posted 光荣之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter +Eclipse测试火币网REST API 实战案例(上)相关的知识,希望对你有一定的参考价值。
新书
速递
吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。
作者 | 徐亚武 杭州复杂美上海交大团队测试组
徐鹤军方案指导
测试火币网REST API
从REST_api_reference拿到header中的user agent为 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/39.0.2171.71 Safari/537.36'
从REST_request拿到接口的域名。补充一点国内网络下,域名api.huobi.br.com更加稳定。
因为火币有些接口需要验证身份。向服务器请求数据时,需要提供AccessKey和SecretKey。其中AccessKey为API 访问密钥,SecretKey为用户对请求进行签名的密钥。
如何获取?注册火币网,进入API管理创建API钥匙。注意将AccessKey和SecretKey保存到本地。该AccessKey和SecretKey能够进行账户内资产的转移使用等,请妥善保存!
首先浏览器打开火币网注册,登陆。如已注册,直接登陆。
打开jmeter,测试计划下,添加线程组。
线程组下,添加配置元件>HTTP信息头管理器,将User-Agent放入头中。
线程组下,添加配置元件>用户定义的变量,将协议(protocol=https),域名(host=api.huobi.br.com),AccessKey,SecretKey等后续需要经常使用的参数化。注意变量命名方法为Java变量命名方法。
线程组下,添加监听器>查看结果树。
线程组下,添加逻辑控制器>简单控制器,命名为市场行情,为RESTAPI第一个模块。详情有那些模块请参照REST_api_reference
元件设置详情如下:
查看REST_api_reference要求,如下:
在市场行情下,添加取样器>HTTP取样器,填写相应参数。
点击查看结果树,查看这个接口的返回信息。
也就是说,按照服务器给到的格式,正确的请求,那么服务器就能正确返回你想要的信息。
同样的你能够完成所有的市场行情接口和公共接口。
再往下的所有接口均需要验证用户,才能从服务器拿到信息。
查看REST_api_reference要求,如下:
查看验签REST_authentication要求,验签过程如下:
将请求信息和密匙SecretKey用HmacSHA256方法加密运算生成一个数字签名字符串
将生成的数字签名与请求信息一起请求给到服务器。
服务器利用密匙解开签名,对照两份请求信息,一致,则返回数据给到客户端。能解开,就确认请求者身份;对照信息一致,说明网络传输过程没有被修改。
特别提醒,SecretKey不会通过网络传递。请求信息中包含AccessKey,服务器拿到你的AccessKey,就能找到它对应的SecretKey。这样做更加安全。
如何利用jmeter生成数字签名那?可以利用BeanShell前置处理器,BeanShell是jmeter自带的符合java语法规范有拥有自己一些语法的小型脚本语言编译器。
在用户资产下,添加取样器>HTTP取样器,按照REST_api_reference要求填写,如下:
在查询当前所有此账户取样器下,添加前置处理器>BeanShell PreProcessor,代码如下:
代码如下:
1 包含huobiApiSign.CreateSign这个类的jar怎么打包的那,请看使用eclipse打包成jar。别忘了将jar导入jmeter中。其中huobiApiSign是文件夹名,CreateSign是类名。
例如import java.util.Map的含义,相当于是将Java文件夹下的util文件夹中的Map导入。
2 CreateSign类中两个方法createSignature和gmtNow怎么写的那,请看如何使用java代码生成时间戳和数字签名。
查看REST_api_reference要求,如下:
根据签名认证要求,对于POST接口请求参数不参与验签,直接放在body当中。
因而,将签名参数放在url上,请求参数放在body当中。
Beanshell前置处理器代码如下:
代码如下:
(精彩待续)
以上是关于Jmeter +Eclipse测试火币网REST API 实战案例(上)的主要内容,如果未能解决你的问题,请参考以下文章
windows : Jmeter自动化测试-eclipse+maven+jmeter
如何使用 JMeter 使用 REST API Put 方法上传文件