Jmeter性能实战--实现接口压测完整流程(一)

Jmeter性能实战--实现接口压测完整流程(一)

 

一、Jmeter软件下载及环境准备

官方下载地址:http://jmeter.apache.org/download_jmeter.cgi

分享001.png

 

 

 

下载完成后直接解压进入bin目录找到jmeter.bat文件双击打开

分享002.png

看到图片上方可以看到需要Java环境,搜索jdk下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

分享003.png

 

jdk安装:
1.系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 C:\Progrom Files\Java\jdk1.8.0_141);
2.系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
3.系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)
系统变量配置完毕
4.检验是否配置成功 运行cmd 输入 java-version

二、Jmeter压测步骤

 

 

1、测试计划--右键add–Threads–Thread Group , 添加线程组

分享004.png

 

 

2、线程组的基本配置如下,表示开启5个线程,间隔1s发送,循环一次,具体数值可以根据自己的需要去修改;

分享005.png

 

 

3、线程组--右键add--ConfigElement–HTTP Header Manager,输入Content-Type=application/json,表示接口请求的默认设置;

分享006.png

 

 

4、线程组--右键add--Sampler–HTTP Request ,添加HTTP登录接口请求(数据请求格式有两种:Parameters、Body Data)

分享007.png

 

 

5、线程组--右键add--Assertions–Response Assertion ,给登录接口加个断言

分享008.png

 

 

6、线程组--右键add–Post Processors–-JSON Extractor ,获取登录接口返回的token

分享009.png

 

 

7、获取token的位置方法:(从结果树中查看接口返回数据)

分享010.png

例如:
要获取字段job_title_id,则为:$.user_info.job_title_id
{
      "result": true,
      "user_info": {
                "job_title_id": 123,
                "branch_office_name": "****上海分公司"
       }
}
要获取数组中的creator_info,则为:$.data.result[0].creator_info      $.data.result[*].creator_info则表示获取所有result下的creator_info
{
      "result": true,
      "code": 10000,
      "data": {
             "result": [
                  {
                        "branch_office_name": "广州",
                        "creator_info": "chen.tan",
                        "department": "产品部"
                  }
            ]
     }
}

 

 

8、线程组--右键add--ConfigElement–-HTTP Header Manager,输入Content-Type=application/json,表示接口请求的默认设置,并将登陆接口中获取的token变量添加进去

分享011.png

 

 

9、线程组--右键add--Sampler–HTTP Request ,添加HTTP获取简历列表接口请求

分享012.png

 

 

10、线程组--右键add--Listener–View Result Tree ,添加察看结果树观察接口返回

完成脚本内容.png

三、优化

  • 上面会有一个困扰很多人的问题。情景如下:业务流程:登录一个网站,反复访问简历列表。通常的做法是使用jmeter对登录和简历列表的接口进行反复的执行:
  • 这样就会导致在进行压测的时候,可能把登录接口也一起压了。因此,就需要用到jmeter的逻辑控制器了。
  • Jmeter官网对逻辑控制的解释是:Logic Controllers determine the order in which Samplers are processed。翻译一下:逻辑控制可以控制采样器(samplers)的执行顺序。
  • 线程组--右键add--logic Controller--Once Only Controller--将其拖动到登陆接口上面--再将登陆接口移动到Once Only Controller中
  • 线程组--右键add--logic Controller--Loop Controller--将其拖动到简历列表接口上面--再将简历列表接口移动到Loop Controller中
  • 后面再执行就可以像上图中一样,登录接口只执行一次,简历列表接口执行多次了。实现正在的压测简历列表接口。
  • 如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的下面的接口运行的次数为两个数值相乘的结果。

四、内容补充

 

 

1、解决jmeter中HTTP请求返回结果乱码的问题:进入Jmeter的bin目录下,找到jmeter.properties文件用文本或notepad++打开,找到sampleresult.default.encoding这个参数,此行默认是注释的。可以看到说明,默认值是ISO-8859-1,将ISO-8859-1修改成utf-8,去掉注释符号,重启Jmeter。问题解决

分享013.png

 

 

2、对传参进行参数化,例如:如果字段为可变的则用${****}形式表示

参数请求.png

 

 

3、线程组--右键add--ConfigElement–-CSV Data Set Config ,配置所传变量文件路径

分享015.png

 

 

4、手动新增好数据集文件,可以用excel文件造好数据后复制进txt文件中

分享016.png

如果大家对于学习Python有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料的,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,这是我的Python交流qun:785128166,有任何问题可以随时来咨询我。
 

### 如何更新 `influxdb-php` 的依赖版本 要更新 `influxdb-php` 或其他相关库的依赖版本,可以通过以下方法完成: #### 使用 Composer 更新依赖 如果当前项目使用的是 PHP 的包管理工具 **Composer** 来管理依赖项,则可以按照以下方式操作。 1. 打开项目的根目录下的 `composer.json` 文件,找到关于 `influxdb-php` 的定义部分。通常会看到如下类似的条目: ```json { "require": { "influxdb/influxdb-php": "^1.6" } } ``` 2. 修改版本号到目标版本。例如,如果你想升级到最新稳定版,可以直接将其改为 `"^latest"` 或者指定具体的版本号(如 `"~2.0"`)。修改后的示例可能如下所示: ```json { "require": { "influxdb/influxdb-php": "~2.0" } } ``` 3. 运行以下命令以执行更新过程: ```bash composer update influxdb/influxdb-php ``` 此命令将会下载并安装新的版本及其所需的任何新依赖关系[^1]。 #### 替代方案:切换至支持 v2+ 客户端库 需要注意的是,在某些情况下,尤其是当您使用的 InfluxDB 是较新的第二代版本时,官方推荐使用专门针对 v2 设计的新客户端库——即由 [influxdata](https://gitcode.com/gh_mirrors/in/influxdb-client-php)[^3] 提供的支持 PHP 的现代 API 库。因此也可以考虑完全替换旧有库为该新型库。 对于此类迁移工作,请仔细阅读对应文档说明,并调整现有代码逻辑适配新版接口设计模式。 --- ### 注意事项 - 在实际生产环境中实施上述更改之前,建议先在个隔离试环境里验证兼容性和功能性。 - 若遇到特定平台上的特殊配置问题(比如 Windows 下),可参照具体操作系统相关的部署指南处理潜在路径设置等问题[^4]。 ```php // 示例:简单连接实例化演示 use InfluxDB\Client; $client = new Client([ 'url' => 'http://localhost', 'token' => '<your_token>', 'bucket' => '<your_bucket>', 'org' => '<your_org>' ]); ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值