18-读取数据库数据进行性能测试

18-读取数据库数据进行性能测试

用同一个token做性能测试,和1000个token随机取一个做性能测试,对服务器性能指标一样吗?

系统是否允许一个账号被同时登录多次?

如果有互踢功能,那是不能使用同一个账号

有没有缓存机制(数据库缓存)

如果有,不能使用同一个账号

造多个账号进行性能测试

  1. 尽可能的在运行过程中,造足够量的账号
  2. 如果只有固定的一些账号可用时,做这种性能测试时,要记得带上「退出登录」接口
  3. 如果只有固定的一些账号可用时,不关心登录接口的信息,可用不用退出

直接使用数据库中数据进行性能测试

数据连接

数据连接

数据库查询

1
select user,password from zx limit 10

数据库查询

循环设置属性

添加计数器

计数器

添加调试取样器设置属性

1
${__setProperty(per_user_${d},${__V(user_${d})},)};${__setProperty(per_pwd_${d},${__V(password_${d})},)}

调试取样器

查看属性设置情况

截屏2021-05-15 下午8.59.06

使用数据库中读取到的内容

设置线程数

线程数

添加计数器

计数器

发起http请求

发起请求

查看结果

查看结果

小结

  1. 线程1:从本地sqlite数据库中获取数据,设置为属性

  2. 线程2:从属性中,直接获取值,进行性能测试

监控

监控被测服务器的软件、硬件资源,收集这些资源的使用情况的数据,用于后续的性能分析

ServerAgent 监控硬件

  • 可用于监控Linux和Winodws

  • 可以和Jmeter直接集成

安装

  1. ServerAgent-2.2.3.zip上传到被测服务器
  2. 解压文件
  3. 进入解压文件后,执行启动命令
1
2
3
4
5
[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」

监听器

实际工作中可能遇到的问题

  1. 被测服务器数云服务器,云服务器会禁用4444端口

关闭UDP端口,开启TCP端口为5279

UDP是一种广播模式传递数据,这种方式数据不安全

TCP需要建立连接才能传输数据,数据相对更安全

1
2
3
[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端口

  1. 如果这个命令不能执行
  • telnet不是内部命令|未找到命令:说明没有开启telnet命令或没有安装
  1. 如果这个命令不通
  • 被测服务器没有启动对应的服务

  • 防火墙没有开放该端口 systemctl status firewalld

1
2
3
4
5
[root@vircent7 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
  1. 如果是云服务器,一定要去web管理台 安全策略中开放端口
 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
您的支持将鼓励我继续创作!