1 2 3 4

Jmeter开发SDK测试插件

1Jmeter开发SDK测试插件

1 什么是SDK?

基本定义:SDK:概念:软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。 我的理解,其实说通俗点就是,客户端SDK当开发引入SDK以后,根据SDK本身的DMEO进行代码开发,而不需要关注本省调用的SDK的逻辑实现。

以我们公司本次测试Java SDK为例

商户模式下,进行一次交易查询。 只需配置私钥,公钥。调用SDK客户端即可实现。

2 SDK应该怎么进行测试

2.1三种方案实现

  1. 通过Jmeter原声BeanShell脚本实现(引用外部SDK Jar包)
  2. 通过开发GUI插件实现,封装一些公用的方法实现(相比较第一种,只是节省了一部分重复的工作量)
  3. 整合前面的两种方案,通过开发Jmeter提供新的请求Sample去实现,测试人员无需关系SDK本身的引用等基础配置。只需关系测试业务数据的测试数据准备就可以实现SDK本身自动化测试了。

3 如何开发SDK插件

3.1 引用

以下两个引用,会引用到,后续会详细讲解,大家可以先去官网看一下具体的使用。

Jmeter-Sample:Class AbstractSampler

Jmeter-Gui:Class AbstractSamplerGui

3.2 开发环境

  • jdk: 1.8以上
  • Eclipse
  • 引入外部jar包 ApacheJmeter_core.jar
  • commons-lang3-3.4.jar
  • log4j-1.6.1.jar

3.3 代码开发

新建项目工程目录
**[BspayGUI.java]**
public class BspayGUI extends AbstractSamplerGui{
//定义一些请求参数
private JLabeledTextField requestMethod;
private JLabeledTextField rsaPrivatekey;
private JLabeledTextField rsaPublicKey;
@override
public void modifyTestElement(TestElement t){
//该方法需要重写,实现请求值的初始化
}
@override
public void clearGui(){
//clear
}

**[BspaySampler.java]
**public class BspaySampler extends AbstractSampler{
@override
public SampleResult sample(Entry entry){
  SampleResult result = new SampleResult();
  result.setSampleLable(getName());
  result.setDataEncoding("utf-8");
  StringBuffer returnMsg = new StringBuffer("");
  StringBuffer sendMsg = new StringBuffer("");
//SDK 测试封装的调用逻辑
//Jmeter 本身的业务调用结果处理
...
result.setSuccessful(true);
result.setSamplerData(sendMSg.toString);
result.setResponseData(returnMsg.toString(),"utf-8")
return result;
...
}
}

**[Util.java]**
这个就是各个项目实现的具体实现类,一般开发那边的脚本拿过来修改一下即可。

3.4 项目导出JAR包

导出JAR包以后,放入jmeter/bin/lib目录下,重启既可以调用SDK,自动化测试了。

后续测试同学,只需要关注JSON里面的业务参数设计,而无需关系SDK本身的内容

posted @ 2022-04-06 11:20  玩出梦想  阅读(658)  评论(0编辑  收藏  举报