巴黎的灯光下 发表于 2017-6-27 13:40:36

我工作中的 API 测试 (JMeter,oauth)

前一阵子一直没有下载到JMeter_oauth-v2,所以使用了eclipse直接写代码进行api测试,后来找到了,哈哈,以下是大概过程:
环境配置
[*]apache-jmeter-2.6(apache-jmeter-2.3.4)
[*]ApacheJMeter_oauth-v2.jar,用于提交oauth请求的jar,下载地址


https://testerhome.com/uploads/photo/2017/93a10a2f31540cdcad2e635a85bf4ebc.jpg%21large


[*]jorphan.jar,如果你选择使用jmeter2.6,需要下载这个jorphan.jar包,替换原有lib/下面的包,原因:jmeter2.6缺少oauth-v2使用的相关函数,所以重新写了一下里面的函数,下载,这个问题在这里,如果使用jmeter2.3.4,就不用下载替换了。

jmeter使用我在使用时,组织结构如下图:


https://testerhome.com/uploads/photo/2017/7640cb3ccec339c45175d53023fa9ee3.jpg%21large

说明:
1.cookie用于保存登录后的cookie。这个是我在提交一个登录操作后,查看“请求”中的数据,将里面的Cookie data设置到cookie(使用全局变量,登录中会写)中。


https://testerhome.com/uploads/photo/2017/62c575112a3f33e020ad7a714fff6faf.jpg%21large

2.登录登录操作,单独写在了一个线程组中,登录请求使用http请求,请求后,需要使用正则表达式提取器,将oauth_token和oauth_token_secret提取并保存下来,用于后续提交数据的令牌验证。


https://testerhome.com/uploads/photo/2017/c932ceb18decb9165500233ab71dd609.jpg%21large

需要将这两个值放在全局变量中,一边后续线程调用,“登录全局变量”,使用Bean Shell Sampler 将oauth_token,oauth、_token_secret和cookie值保存在全局变量中,使用时:${__property(全局变量名)}


https://testerhome.com/uploads/photo/2017/5e6e35f73337fbcaf9bce747b4bae669.jpg%21large

3./share/add.ashx发分享测试,使用CSV Data Config将本地用例导进来:


https://testerhome.com/uploads/photo/2017/f521ba496d9cc9d3d5ff7c3f24fe1948.jpg%21large

导入之后,需要根据用例个数设置线程数:


https://testerhome.com/uploads/photo/2017/7883d955cba73053f4b34da3d379c5f2.jpg%21large

使用Oauth Request提交发分享请求:   

https://testerhome.com/uploads/photo/2017/124007e292a1bbc88d8753b4c6c7c238.jpg%21large

分享请求下面,写断言,我是用的是响应断言,如果登录响应中的数据,包含${expected_text}(csv中的预期值),即通过,否则失败。

https://testerhome.com/uploads/photo/2017/0613c56e3dbf3738091d30a923c6b010.jpg%21large

4. 查看结果树执行完成后,可以查看结果

乐哈哈yoyo 发表于 2017-6-27 13:48:39

不错,分析的很详细!!

巴黎的灯光下 发表于 2017-6-27 13:51:08

乐哈哈yoyo 发表于 2017-6-27 13:48
不错,分析的很详细!!

谢谢支持!

joseph_wh 发表于 2017-7-20 11:25:37

谢谢分享!~
页: [1]
查看完整版本: 我工作中的 API 测试 (JMeter,oauth)