您的位置:首页 > 游戏 > 游戏 > 长春市网站制作公司_开发一套小程序需要多少钱_上海app定制开发公司_营销推广手段有什么

长春市网站制作公司_开发一套小程序需要多少钱_上海app定制开发公司_营销推广手段有什么

2024/12/23 1:44:33 来源:https://blog.csdn.net/ch1451082329/article/details/144112577  浏览:    关键词:长春市网站制作公司_开发一套小程序需要多少钱_上海app定制开发公司_营销推广手段有什么
长春市网站制作公司_开发一套小程序需要多少钱_上海app定制开发公司_营销推广手段有什么

csv 中读取账号密码登录

压测登录接口,通常需要循环读取账号密码,使用 jmeter 处理该需求一般会采用 csv 文件设置来读取账号密码,信息文件(user_info.txt)示例如下:

信息文件中使用英文逗号分割账号、密码,并回车换行

接下来在 jmeter 的 http 请求下,添加配置元件 CSV 数据文件设置,添加完毕后,进行以下配置:

文件名:添加信息文件的路径

文件编码:UTF-8

变量名称:对配置信息文件中数据进行设置变量名,以英文逗号分隔

其他字段可以保持默认值,不进行修复,CSV 数据文件设置示例如下:

http 请求中调用:

使用 ${参数名称},调用配置的值

http 请求从上到下依次读取配置文件的账号信息,读取到最后一个账号后,下一个请求又从头开始读取,依此循环,从而实现登录账号循环调用,模拟多个账号并发登录

响应字段提取与使用

对于一些组合接口,上一个接口的响应数据,会成为下个接口的参数,对于这样的接口场景,需要对响应数据进行提取

响应数据

{"server_time": 1633746337,"data": {"total": 100,"list": [{"id": 1,"name": "xiaohua"},{"id": 2,"name": "xiaoming"}]},"success": true
}

提取第一层 server_name:$. server_time

提取第二层 total 值:$. data.total

提取第三层第一个 name 的值,list 是一个数组,第一个 name 在 list[0] 下,所以:$. data.list[0].name

提取 list 数组下所有 name 的值:$. data.list[*].name

详见:Jmeter参数提取——JSON提取器 - 水中雨 - 博客园

JSON 提取器示例:

下一个接口使用该参数:

文件上传

文件上传的接口,比普通的参数请求接口复杂些,需要进行以下配置

HTTP 信息头部管理器中需要对 Content-Type 配置,配置为 multipart/from-data,如图

根据接口实际情况分别添加请求参数和文件内容,请求参数:

文件内容:

文件名称传入本地文件地址,参数名称传入服务端接口规定的参数,MIME 类型根据服务端规定,设置对应的值,这里是 multipart/from-data

linux 命令行压测

在 linux 中使用 jmeter 进行压测,需要先后部署 JDK、Jmeter,并配置环境变量,此处不展开说明。配置完毕后,调用以下命令进行压测:

jmeter -n -t /tmp/perftest/scirpt/test.jmx -l /tmp/perftest/result.jtl -e -o /tmp/perftest/report/client

-n 代表使用非 GUI 方式,执行脚本

-t 代表要执行的脚本路径,需要提前上传到指定目录

-l 代表执行过程中生成的 jtl 文件路径

-e 在测试结束后生成 HTML 报告

-o 生成报告的目录

同样的道理,如果测试脚本中需要传递文件,例如 csv 数据文件、文件上传接口中的文件,都需要提前上传到 linux 服务器中,在 windows 或 macOS 电脑中, GUI 打开 Jmeter,编辑测试脚本,文件路径修改为 linux 服务器对应文件地址,然后保存 jmx 文件,并上传到 linux 服务器中,通过以上命令执行压测脚本

命令行执行压测脚本过程中,控制台中会定时刷新执行情况,如下所示:

默认情况下,每隔 30 秒刷新一次,如果希望刷新频率增高,修改文件

jmeter 目录/bin/jmeter.properties, 查找到字段 summariser.interval,去掉注释,并填写你期望的值,最小值为 6,即每隔 6 秒刷新一次控制台

分布式压测

采用单台机器对目标服务器产生的压力,因为受限于CPU、内存、网络、IO等因素的影响,通常只能模拟几十到几百用户的并发访问。分布式压测是利用多台机器同时向目标服务器产生压力,可以模拟几万到上亿级别用户的并发访问。

分布式压测,是通过一台控制主机,控制多台执行机,同时运行压测脚本,从而达到高并发压测的效果,见下图:

进行分布式测试,需要满足以下条件:

  • 控制机和各执行机上使用相同版本的 JMeter 和 JDK

  • 控制机和各执行机在同一局域网下,防火墙已关闭或已打开正确端口且端口未被占用,杀毒软件关闭

  • 如果测试数据有用到 CSV 或者文件数据,需要将 data 在每台执行机上复制一份,且读取路径必须保持一致

控制机及执行机环境和压测脚本部署完毕后,接下来需要修改控制机及执行机配置文件,

执行机进入 Jmeter 安装目录/bin,修改配置文件 jmeter-properties,修改以下字段:

remote_hosts= 本机 IP

server_port=1099 #或其他自定义端口,确保正常可用不重复

server.rmi.ssl.disable=true

修改并保存完成后,windows 启动 jmeter-server.bat,macOS 或 linux 启动 jmeter-server

正确配置的话,控制台出现以下提示:

Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.2.246:19120](local),objID:[-34b17e9d:193717edda9:-7fff, 3788978414250560367]]]

控制机进入 Jmeter 安装目录/bin,修改配置文件 jmeter-properties,修改以下字段:

remote_hosts= 执行机 1 ip:1099,执行机 2 ip:1099,本机 ip:1099

server_port=1099 #或其他自定义端口,确保正常可用不重复

server.rmi.ssl.disable=true

修改后进行保存

以上配置中将控制机也作为其中一部压测机,如果不需要的话,可以不配置控制机 ip 和端口,有多个压测机逐个添加并以英文逗号分隔

接下来以 GUI 的方式启动控制机的 Jmeter,如果配置正确,能看到以下远程压测机器:

分别选择远程压测机器,执行脚本,查看结果树,取样器结果中提示该线程的执行机器信息:

远程机器控制台输出:

命令行压测执行脚本

全部压测机器都执行脚本

jmeter -n -t /tmp/perftest/scirpt/test.jmx -l /tmp/perftest/result.jtl -e -o /tmp/perftest/report/client -r

指定机器执行脚本

jmeter -n -t /tmp/perftest/scirpt/test.jmx -l /tmp/perftest/result.jtl -e -o /tmp/perftest/report/client

-r 192.168.2.246

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com