当前位置: 首页 > article >正文

Jmeter接口测试

一、创建工程、引包

1、创建JAVA工程

2、引入Jmeter中lib\ext基础包: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(是基于httpcore的一套客户端)、httpcore-4.3.2.jar(是一套http协议实现包)

Jmeter用到的4个类:

Arguments

getDefaultParameters() 用于获取界面的参数

SampleResult

runTest(JavaSamplerContext context) 类似于LR的Action

void

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

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

三、运行用例

1、运行%Jmeter_Home%\bin\jmeter.bat

2、添加线程组,Java请求、查看结果树、聚合报告

3、执行后的结果为

Tips:

快捷键

Ctrl+R运行用例、Ctrl+E清除运行结果

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)


http://www.kler.cn/news/161762.html

相关文章:

  • STL(一)(pair篇)
  • 【Docker二】docker网络模式、网络通信、数据管理
  • Oracle11g RAC无法使用VIP或SCAN IP连接数据库的解决方案
  • 人工智能_机器学习061_KKT条件公式理解_原理深度解析_松弛变量_不等式约束---人工智能工作笔记0101
  • HTTP、HTTPS、SSL协议以及报文讲解
  • 【1day】DocCms 某接口SQL注入漏洞学习
  • Linux:缓冲区的概念理解
  • 什么是HTTPS加密协议? ️
  • Redission分布式锁原理初探
  • Docker架构及常用的命令
  • (五) Python 代理模式
  • 功能测试,接口测试,自动化测试,压力测试,性能测试,渗透测试,安全测试,具体是干嘛的?
  • 网站导航栏下滑隐藏,上滑显示,效果杠杆,兼容性强
  • node.js学习笔记——内部模块、自定义模块的导入和使用方式
  • 【Flink on k8s】- 12 - Flink kubernetes operator 的高级特性
  • 生成对抗网络GAN中的潜向量Z是用来做什么的?
  • Java 使用html2image将html生成缩略图图片
  • gcc安全特性之变量初始化检查
  • 二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺
  • Python 适合做什么?
  • 关于popen执行命令无效,但是手动命令行执行有效的问题
  • redis查看统计信息
  • 智能优化算法应用:基于蛇优化算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 题目:回文判定(蓝桥OJ 1371)
  • MacBook安装方正小标宋简体和仿宋GB2312
  • NLP自然语言处理学习笔记
  • Data Mining数据挖掘—2. Classification分类
  • 华清远见嵌入式学习——QT——作业1
  • CoreDNS实战(二)-CoreDNS+ETCD实现DNS服务发现
  • 陈睿接手一年后,B站全力一搏的游戏业务怎样了