一、编写测试计划
第1步:打开jemeter
首先打开jmeter的bin目录,点击jmeter.bat文件运行:
第2步:添加线程组
右键测试计划,选择添加-线程-线程组(下面提供2种演示图,对应中/英):
注意jmeter的图形界面是用来编辑图形测试计划的,跑测试是用命令行去跑。
Number of Threads是线程数:指定的是并发线程有几个。
Ramp-up period是预热时间:代表所有线程在多少时间内启动完成(如果想在一开始让所有线程工作写成0即可)。
Loop Count是循环次数:每个线程循环执行几次(如果勾选Infinite,代表永远,线程就会持续地向后端发起请求)。
举例:线程数400个,预热时间10秒(1秒是1000毫秒,10秒是10000毫秒),所以是每隔25毫秒会启动一个线程。
第3步:添加Http请求
HTTP Request定义的是需要被测试服务器的URL,访问的页面,请求头等:
发送GET请求:
发送POST请求:
点击添加,然后编辑POST请求传入参数的名称:
通过 工具-函数助手对话框,可以调用不同函数作为变量的传入值。下面以Random函数为例:
可以设置范围内的最小值和最大值,点击生成,函数的字符串就自动被复制入剪贴板,粘贴到变量的参数值位置:
第4步:添加监听器展示结果
注意最后要将Jmeter的图形测试计划导出为.jmx文件。
.jmx文件是JMeter测试计划的一种文件格式。在JMeter中,所有的测试计划都被保存为.jmx文件。这种文件包含了测试计划的所有元素,包括线程组、控制器、取样器、断言、监听器等等,它们都以XML格式储存在.jmx文件中。
步骤:
1.在jmeter中创建或修改完测试计划,选择文件,保存为测试计划:
2.选择要保存.jmx文件的位置,点击确定即可:
二、Jmeter压力测试的步骤
实验策略:首先要把.jmx文件放到目录下面,怎么放置采用scp来进行文件的传输,通过连接服务器的ip来将本地的测试脚本传输到远程的服务器上。
vim WriteProduct.jmx 进入写数据库测试脚本,然后更改其中的线程数。
输入jmeter -n -t WriteOrder.jmx -l W8000-10.jtl来进行jmeter文件的编译。(jmeter -n -t ReadProduct.jmx -l R2000-10.jtl 是读数据库测试脚本的编译)
-n 表示非GUI模式运行,通常在服务器或命令行环境中使用。-t 指定要运行的JMeter测试脚本的路径,这里是WriteProduct.jmx。-t 指定要运行的JMeter测试脚本的路径,这里是WriteProduct.jmx。-l表示日志文件,即测试结果写入的目标文件,这里是W2000-10.jtl。
由此会得到一个W2000-10.jtl的文件。
然后输入以下的命令输出日志文件:
rm -r result/*
jmeter -g W7000-10.jtl -o result/ (读 jmeter -g R2000-10.jtl -o result/)
-g 表示要生成报告的日志文件,这里是W2000-10.jtl。-o 表示生成报告的输出目录,这里是result/。JMeter将在这个目录下生成一个HTML格式的性能测试报告。
在自己的本地机器上创建一个文件夹,记住其中的路径,比如:
在C/Users/a/Downloads下mkdir W1000-100
cp -r root@120.46.39.186:/root/result/* W1000-10
这是一个使用scp命令复制文件的命令。scp是secure copy的缩写,用于在本地主机和远程主机之间复制文件。-r 表示递归复制,可以复制目录及其子目录下的所有文件。
root@120.46.39.186:/root/result/* 指的是远程主机的文件或目录,格式是用户名@主机地址:文件路径。这里表示远程主机的IP地址是120.46.39.186,用户名是root,要复制的文件在/root/result/目录下。W1000-10 表示要将文件复制到本地主机的目标目录。这里表示复制到当前目录下的W1000-10目录。如果目标目录不存在,scp将创建它。
然后具体查看Response time ,然后要查看Active Threads over time。
三、数据库索引常用命令
1. 创建索引(普通添加)
语法:create index 索引名 on 表名(字段名)
示例:create index index_origin_price on goods_product(Original_price);
含义:在goods_product表的Original_price字段上创建一个名为index_origin_price的索引。
2. 删除索引
语法:alter table 表名 drop index 索引名
示例:alter table goods_product drop index index_name;
含义:删除goods_product表上的名为index_name的索引。
3. 展示索引
语法:show index from 表名;
示例:show index from goods_product;
含义:显示goods_product表中的所有索引。
4. 注意事项
1. 原数据库3912条数据,每次清空新写入数据:delete from goods_product where id>5461;
2. select * from goods_product;
四、OpenSSH镜像的下载
cd C:\Program Files\OpenSSH
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
net start sshd
scp C:\Users\Dell\Desktop\WriteProduct.jmx root@121.37.156.112:/home/root/
五、其它常用命令
1. 进入容器
语法:docker exec -it 容器id /bin/bash
docker exec这是Docker的一个命令,用于在正在运行的容器中执行命令。-it这是docker exec命令的两个选项,-i代表interactive保持STDIN开启即使没有附加。-t代表tty分配一个伪终端。这两个选项一起使用可以让你有一个交互式的shell。/bin/bash在Docker容器中运行的命令,运行bash是一种常用的Unix shell,可以在Docker容器的内部环境中得到一个bash shell,从而可以执行更多的命令。
示例:docker exec -it b349119f893f /bin/bash
2.进入数据库
语法:mysql -uroot -p
3.进入容器同时进入数据库
语法:docker exec -it 容器id mysql -uroot -p
4.查看docker容器列表
docker ps