Jmeter开发SDK测试插件
1Jmeter开发SDK测试插件
1 什么是SDK?
基本定义:SDK:概念:软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。 我的理解,其实说通俗点就是,客户端SDK当开发引入SDK以后,根据SDK本身的DMEO进行代码开发,而不需要关注本省调用的SDK的逻辑实现。
以我们公司本次测试Java SDK为例
商户模式下,进行一次交易查询。 只需配置私钥,公钥。调用SDK客户端即可实现。
2 SDK应该怎么进行测试
2.1三种方案实现
通过Jmeter原声BeanShell脚本实现(引用外部SDK Jar包) 通过开发GUI插件实现,封装一些公用的方法实现(相比较第一种,只是节省了一部分重复的工作量) 整合前面的两种方案,通过开发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本身的内容