美文网首页接口测试
JMeter二次开发实现接口测试(二)

JMeter二次开发实现接口测试(二)

作者: 君桦录 | 来源:发表于2019-02-19 14:09 被阅读375次

    JMeter涉及到二次开发,原因总不绕开一些定制内容,比如接口测试存在复杂的上下文关联。“真·二次开发"的优势是基本没有约束地实现自定义内容,当然功力不够会写BUG,也会降低源代码的运行效率。本文主要说说“伪·二次开发”如何处理这类定制需求。

    1.开源包jmeter-maven-plugin

    通过查看源码,发现这个包的作用是拼接JMeter命令行并运行。这使得用户可以不关心调用细节,配置pom.xml文件的约定内容即可。

    (具体配置参见:https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki)

    命令行生成逻辑

    MAVEN命令触发JMeter的测试管理器,调度执行中会判断是否是生成报表、是否是配置加载和是否运行测试项来获得测试结果。

    (注意:jmeter-maven-plugin版本与apache-jmeter有对应关系,官网描述为:The current release of this plugin is 2.8.0, it requires JDK 8 and uses Apache JMeter 5.0.)

    2.Plugin项目开发

    Plugin项目最后生成的结果是Apache JMeter软件下扩展LIB下的JAR包,作用是通过定制化的JAVA Request请求来处理上下请求间的复杂参数处理,如加解密、调用远程方法计算等。

    (1)Java Request

    JMeter支持多种协议的请求和响应,比如HTTP请求、FTP请求、JDBC请求、JMS协议、LDAP请求、SMTP协议、TCP协议等等。Java请求为其中的一项,操作灵活度高,可方便处理上下接口的参数。

    Java请求定制化实现

    (2)上下文参数特殊处理

    @Override

    public SampleResult runTest(JavaSamplerContext context) {

    SampleResult results = new SampleResult();

    // Default Success Result

    results.setSuccessful(true);

    // Start to Record Time

    results.sampleStart();

    try {

    // Load Test Data From DAO

    // Call API

    // Save Data to DAO

    } catch (Throwable e) {

    e.printStackTrace();

    results.setSuccessful(false);

    // Log Exception to JMeter Result

    results.setResponseData(toStringStackTrace(e), "utf8");

    }

    // End to Record Time

    results.sampleEnd();

    return results;

    }

    上述代码为具体用例TestCase实现的接口方法runTest(JavaSamplerContext context)。

    其中,粗体“Load Test Data From DAO”与“Save Data to DAO”用来负责处理接口参数的调取和存储。调取的参数可以预设,可以结合依赖接口返回值进行加密等复杂操作。

    (3)部署测试

    Plugin项目完成后,需要放入指定Apache JMeter软件目录生效,比如下图所示的扩展LIB路径。

    Plugin项目部署路径

    在部署后,在JMeter的GUI界面中可以看到生效的结果。

    比如,项目中实现了下述Java Request用例。

    Java Request用例

    那么在JMeter中,可以选择到指定Java Request用例。

    JMeter可见定制用例

    在项目真正部署到平台或打包EXE之前,可以通过JMeter图像界面配置和进行综合场景的接口测试。

    本文介绍了JMeter Plugin项目的开发和测试流程,稍后会对部署项目进行介绍。

    JMeter二次开发实现接口测试(一)

    JMeter二次开发实现接口测试(三)

    相关文章

      网友评论

        本文标题:JMeter二次开发实现接口测试(二)

        本文链接:https://www.haomeiwen.com/subject/eqtaeqtx.html