• Java+Jmeter接口测试


    一、创建工程、引包
    1、创建JAVA工程
    2、引入Jmeter中libext基础包:ApacheJMeter_java.jar、ApacheJMeter_core.jar
    3、引入Jmeter日志包:jorphan.jar,logkit-2.0.jar,commons-logging-1.1.1.jar,avalon-framework-4.1.4.jar
    4、引入httpclient-4.3.4.jar(是一套http协议实现包)
    Jmeter用到的4个类:

    Arguments  :getDefaultParameters用于获取界面的参数

    SampleResult:runTestJavaSamplerContext context) 类似于LR的Action

     

    void( context) 初始化方法,类似于LR的init和Junit中的setUp()

    void:teardownTest(JavaSamplerContext context) 类似于LR的end和Junit中的tearDown()

     

    执行的先后顺序为:getDefaultParameters() --> setupTest(JavaSamplerContext context) -->
    runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)
    ①、addArgument("name", "value")    定义参数
    ②、sampleStart()    定义事务的开始,类似于LR的lr_start_transaction,和LR一样事务间不要放无关代码
    ③、sampleEnd()    定义事务的结束,类似于LR的lr_end_transaction
    ④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中能够体现。
    二、用例
    1、TestApiGetSearchSuggestion.java,该代码实现对Api接口的请求,对返回的数据进行判断,并写文件。
    2、Jmeter_GetSearchSuggestion.java,为本节介绍的重点

    1. package com.test.jmeter;
    2. import java.io.IOException;   
    3. import org.apache.http.client.ClientProtocolException;   
    4. import org.apache.jmeter.config.Arguments;   
    5. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;   
    6. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;   
    7. import org.apache.jmeter.samplers.SampleResult;   
    8. public class Jmeter_GetSearchSuggestion extends AbstractJavaSamplerClient {   
    9. private static String label = "Jmeter_GetSearchSuggestion ";    //定义label名称,显示在jmeter的结果窗口  
    10. private String url;  
    11. private String data;  
    12. public void setupTest(){  
    13. //定义测试初始值,setupTest只在测试开始前使用  
    14. System.out.println("setupTest");  
    15. }  
    16. @Override  
    17. public SampleResult runTest(JavaSamplerContext arg0) {  
    18. url = arg0.getParameter("url");  
    19. data = arg0.getParameter("data");  
    20. SampleResult sr;  
    21. sr = new SampleResult();  
    22. sr.setSampleLabel(label);  
    23. TestApiGetSearchSuggestion t = new TestApiGetSearchSuggestion();  
    24. sr.sampleStart();  
    25. try {  
    26. //调用被压测接口的方法  
    27. t.PostJson(url, data);  
    28. sr.setSuccessful(true);  
    29. catch (ClientProtocolException e) {  
    30. sr.setSuccessful(false);  
    31. e.printStackTrace();  
    32. catch (IOException e) {  
    33. sr.setSuccessful(false);  
    34. e.printStackTrace();  
    35. }  
    36. sr.sampleEnd(); // jmeter 结束统计响应时间标记  
    37. return sr;  
    38. }  
    39. public void teardownTest(JavaSamplerContext arg0){  
    40. super.teardownTest(arg0);  
    41. }  
    42. public Arguments getDefaultParameters(){  
    43. //参数定义,显示在前台,也可以不定义  
    44. Arguments params = new Arguments();  
    45. params.addArgument("url", "http://gapp.test.com/merchandise/GetSearchSuggestion");  
    46. params.addArgument("data", "data={"token": "aaaaaaaaaa","body": {"keywords": "蓝月亮"}}");  
    47. return params;  
    48. }  
    49. }  


    3、main函数测试成功后,打成jar包,放到%Jmeter_Home%libext目录中即可


    三、运行用例
    1、运行%Jmeter_Home%injmeter.bat
    2、添加线程组,Java请求、查看结果树、聚合报告
    3、执行后的结果为

    Tips:
    快捷键
    Ctrl+R运行用例、Ctrl+E清除运行结果
  • 相关阅读:
    利用pipe实现进程通信一例
    司机和售票员问题 信号signal注册一例
    HDU 1003
    HDU 1847
    HDU 1846(巴什博弈)
    《断弦》感想
    夺冠概率
    熄灯问题
    HDU 2176(Nim博弈)
    NYOJ 541
  • 原文地址:https://www.cnblogs.com/camilla/p/7127780.html
Copyright © 2020-2023  润新知