Jmeter +Eclipse测试火币网REST API 实战案例(上)

Posted 光荣之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter +Eclipse测试火币网REST API 实战案例(上)相关的知识,希望对你有一定的参考价值。

新书

速递

吴老的java版《selenium webdriver 实战宝典》和python版《selenium Webdriver 3.0 自动化测试框架实战指南》出版了,代码拿来就能用。

作者 | 徐亚武 杭州复杂美上海交大团队测试组

徐鹤军方案指导


测试火币网REST  API

Jmeter +Eclipse测试火币网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能够进行账户内资产的转移使用等,请妥善保存!


从火币网拿到两个Key

首先浏览器打开火币网注册,登陆。如已注册,直接登陆。

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)


测试准备
  • 打开jmeter,测试计划下,添加线程组。

  • 线程组下,添加配置元件>HTTP信息头管理器,将User-Agent放入头中。

  • 线程组下,添加配置元件>用户定义的变量,将协议(protocol=https),域名(host=api.huobi.br.com),AccessKey,SecretKey等后续需要经常使用的参数化。注意变量命名方法为Java变量命名方法。

  • 线程组下,添加监听器>查看结果树。

  • 线程组下,添加逻辑控制器>简单控制器,命名为市场行情,为RESTAPI第一个模块。详情有那些模块请参照REST_api_reference

Jmeter +Eclipse测试火币网REST API 实战案例(上)

元件设置详情如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)


第一个接口

查看REST_api_reference要求,如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)

在市场行情下,添加取样器>HTTP取样器,填写相应参数。

Jmeter +Eclipse测试火币网REST API 实战案例(上)

点击查看结果树,查看这个接口的返回信息。

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)

 

Jmeter +Eclipse测试火币网REST API 实战案例(上)

也就是说,按照服务器给到的格式,正确的请求,那么服务器就能正确返回你想要的信息。

同样的你能够完成所有的市场行情接口和公共接口。

再往下的所有接口均需要验证用户,才能从服务器拿到信息。


第一个需签名的GET请求

查看REST_api_reference要求,如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)

查看验签REST_authentication要求,验签过程如下:

  • 将请求信息和密匙SecretKey用HmacSHA256方法加密运算生成一个数字签名字符串

  • 将生成的数字签名与请求信息一起请求给到服务器。

  • 服务器利用密匙解开签名,对照两份请求信息,一致,则返回数据给到客户端。能解开,就确认请求者身份;对照信息一致,说明网络传输过程没有被修改。

  • 特别提醒,SecretKey不会通过网络传递。请求信息中包含AccessKey,服务器拿到你的AccessKey,就能找到它对应的SecretKey。这样做更加安全。


如何利用jmeter生成数字签名那?可以利用BeanShell前置处理器,BeanShell是jmeter自带的符合java语法规范有拥有自己一些语法的小型脚本语言编译器。


在用户资产下,添加取样器>HTTP取样器,按照REST_api_reference要求填写,如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)

在查询当前所有此账户取样器下,添加前置处理器>BeanShell PreProcessor,代码如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)

代码如下

Jmeter +Eclipse测试火币网REST API 实战案例(上)

1  包含huobiApiSign.CreateSign这个类的jar怎么打包的那,请看使用eclipse打包成jar。别忘了将jar导入jmeter中。其中huobiApiSign是文件夹名,CreateSign是类名。

例如import java.util.Map的含义,相当于是将Java文件夹下的util文件夹中的Map导入。

2  CreateSign类中两个方法createSignature和gmtNow怎么写的那,请看如何使用java代码生成时间戳和数字签名。


第一个需签名的POST接口

查看REST_api_reference要求,如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)

根据签名认证要求,对于POST接口请求参数不参与验签,直接放在body当中。

因而,将签名参数放在url上,请求参数放在body当中。

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Beanshell前置处理器代码如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上) 

代码如下:

Jmeter +Eclipse测试火币网REST API 实战案例(上)


使用Eclipse完成验签代码

(精彩待续)

Jmeter +Eclipse测试火币网REST API 实战案例(上)

Jmeter +Eclipse测试火币网REST API 实战案例(上)
喜马拉雅app搜索并收听“光荣之路”电台
光荣之路
招聘|征稿|合作 |QQ群
735821166@qq.com
python群:457561756
性能群:415987441
招聘群:203715128
感谢认真阅读的你!

以上是关于Jmeter +Eclipse测试火币网REST API 实战案例(上)的主要内容,如果未能解决你的问题,请参考以下文章

windows : Jmeter自动化测试-eclipse+maven+jmeter

使用JMETER进行REST API测试(分步指南)

如何使用 JMeter 使用 REST API Put 方法上传文件

Jmeter +Maven+jenkins+eclipse 接口自动化测试

Jmeter JAVA工程测试

jmeter3.2 测试openstack-kilo cinder 的rest api