添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
- [一、导入包含签名方法的jar包](#jar_57) - [二、定义Jmeter变量](#Jmeter_105) - [三、使用前置BeanShell处理器,进行签名,并将签名值赋予变量${sign}](#BeanShellsign_110) - [四、发送HTTP Sampler,引用前置处理器中的变量 ${sign}](#HTTP_Sampler_sign_124) - [五、BeanShell 断言](#BeanShell__127) - [六、查看结果树](#_162) ### 一、导入包含签名方法的jar包 ![](https://box.kancloud.cn/3e576a20e85fc5df8974cdb89f58e62e_1004x550.jpg) 其中的md5.jar 是自行编写的java类,然后导出的jar包,再在jmeter中导入进行使用 md5.java 代码参考如下: package com.ssjj.ptqa; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class md5 { public static String toMD5(String plainText) { try { // 生成实现指定摘要算法的 MessageDigest 对象。 MessageDigest md = MessageDigest.getInstance("MD5"); // 使用指定的字节数组更新摘要。 md.update(plainText.getBytes()); // 通过执行诸如填充之类的最终操作完成哈希计算。 byte b[] = md.digest(); // 生成具体的md5密码到buf数组 int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); // 32位加密 return buf.toString(); // System.out.println("32位: " + buf.toString());// 32位的加密 // 16位的加密 // return buf.toString().substring(8, 24); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return null; public static void main(String agrs[]) { String sign = new md5().toMD5("b68f05cd86e6633e9e012663ef4727e3203.151.232.104");// 加密LXD System.out.println(sign); ### 二、定义Jmeter变量 key:Milton\_PTQA ip:171.96.0.127 (随意填IP即可) ![](https://box.kancloud.cn/459e8c940ad1340e33313a79a3a752c3_962x245.jpg) ### 三、使用前置BeanShell处理器,进行签名,并将签名值赋予变量${sign} ![](https://box.kancloud.cn/4fc71d642f1e3d0d5b255a8c857084d5_943x468.jpg) *代码参考* import com.ssjj.ptqa.md5; String ip = vars.get("ip"); String key = vars.get("key"); String pass = new md5().toMD5(key+ip); //log.info("pass="+ip); vars.put("sign",pass); ### 四、发送HTTP Sampler,引用前置处理器中的变量 ${sign} ![](https://box.kancloud.cn/24ca0b7a119ea67a4990618e60115d17_956x660.jpg) ### 五、BeanShell 断言 ![](https://box.kancloud.cn/b65e4f274c22b35cfdf312769e953e7d_606x710.jpg) *参考代码* import org.json.*; //测试国家 String test_area = "Thailand"; String country = ""; String city=""; Boolean result = false; // 获取变量值 String ip = vars.get("ip"); // 获取返回字符串 String jsonString = prev.getResponseDataAsString(); // 将返回字符串构造为Json对象 JSONObject responseJson = new JSONObject(jsonString); // 获取json对象中的值 int code = responseJson.getInt("code"); country = responseJson.get("data").get("country").toString(); city = responseJson.get("data").get("city").toString(); }catch(Exception e){ result = true; if(result){ log.error("jsonString--------->:"+jsonString); // 断言 if(!country.equals(test_area) || result || city.length()==0 ){ Failure=true; FailureMessage="Error Response:"+jsonString; ### 六、查看结果树 ![](https://box.kancloud.cn/06492ce6d1018f6952f952ad6c982836_680x540.jpg) - - - - - - ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg) ***微信扫一扫,关注“python测试开发圈”,获取更多测试开发分享!***
  • Fiddler01-抓包原理介绍与配置
  • Fiddler02-菜单功能介绍
  • Fiddler03-轻松玩转Fiddler
  • Fiddler04-进阶使用FiddlerScript
  • Fiddler05-使用FiddlerScript对微信文章互动量进行监控
  • Postman01-介绍与安装
  • Postman02-HTTP请求与响应
  • Postman03-Collection管理与运行
  • Postman04 -变量详解
  • Postman05-初级脚本使用
  • Postman06-实例小结篇
  • JMeter01-JMeter就是这么简单
  • JMeter02-一个完整实战包你学会使用JMeter
  • JMeter03-在JMeter中使用BeanShell编程
  • JMeter04-图形化和非图形化运行JMeter
  • JMeter05-生成美观的HTML测试报告
  • JMeter06-JMeter+Jenkins实战
  • JMeter07-解析session与cookie
  •