用同一个token做性能测试,和1000个token随机取一个做性能测试,对服务器性能指标一样吗?
系统是否允许一个账号被同时登录多次?
如果有互踢功能,那是不能使用同一个账号
有没有缓存机制(数据库缓存)
如果有,不能使用同一个账号
造多个账号进行性能测试
- 尽可能的在运行过程中,造足够量的账号
- 如果只有固定的一些账号可用时,做这种性能测试时,要记得带上「退出登录」接口
- 如果只有固定的一些账号可用时,不关心登录接口的信息,可用不用退出
直接使用数据库中数据进行性能测试
数据连接
数据连接
数据库查询
代码语言:javascript复制select user,password from zx limit 10
数据库查询
循环设置属性
添加计数器
计数器
添加调试取样器设置属性
代码语言:javascript复制${__setProperty(per_user_${d},${__V(user_${d})},)};${__setProperty(per_pwd_${d},${__V(password_${d})},)}
调试取样器
查看属性设置情况
截屏2021-05-15 下午8.59.06
使用数据库中读取到的内容
设置线程数
线程数
添加计数器
计数器
发起http请求
发起请求
查看结果
查看结果
小结
- 线程1:从本地sqlite数据库中获取数据,设置为属性
- 线程2:从属性中,直接获取值,进行性能测试
监控
监控被测服务器的软件、硬件资源,收集这些资源的使用情况的数据,用于后续的性能分析
ServerAgent 监控硬件
- 可用于监控Linux和Winodws
- 可以和Jmeter直接集成
安装
- 将
ServerAgent-2.2.3.zip
上传到被测服务器 - 解压文件
- 进入解压文件后,执行启动命令
[root@vircent7 serverAgent]# chmod 777 startAgent.sh
[root@vircent7 serverAgent]# ./startAgent.sh
INFO 2021-03-27 13:27:11.890 [kg.apc.p] (): Binding UDP to 4444
INFO 2021-03-27 13:27:12.896 [kg.apc.p] (): Binding TCP to 4444
INFO 2021-03-27 13:27:12.924 [kg.apc.p] (): JP@GC Agent v2.2.3 started
默认的服务器端口为
4444
jmeter与该监控集成
jmeter监听器>jp@gc - PerfMon Metrics Collector「需要安装第三方插件 jpgc」
监听器
实际工作中可能遇到的问题
- 被测服务器数云服务器,云服务器会禁用4444端口
代码语言:javascript复制关闭UDP端口,开启TCP端口为5279 UDP是一种广播模式传递数据,这种方式数据不安全 TCP需要建立连接才能传输数据,数据相对更安全
[root@vircent7 serverAgent]# ./startAgent.sh --udp-port 0 --tcp-port 5279
INFO 2021-03-27 13:36:21.743 [kg.apc.p] (): Binding TCP to 5279
INFO 2021-03-27 13:36:21.909 [kg.apc.p] (): JP@GC Agent v2.2.3 started
网络要通:不是使用ping命令
ping:只要网络存在这个IP,ping命令可以被禁用,企业中的服务器,很多时候都会禁用ping命令
服务器向外提供是通过端口,如果服务器没有启动,是没有端口可用,能ping通但是无法连接
防火墙上没有开通端口权限
一般采用 telnet ip端口
- 如果这个命令不能执行
- telnet不是内部命令|未找到命令:说明没有开启telnet命令或没有安装
- 如果这个命令不通
被测服务器没有启动对应的服务
防火墙没有开放该端口 systemctl status firewalld
- 如果是云服务器,一定要去web管理台 安全策略中开放端口