编译安装Python3解压压缩包
tar -zxvf Python-3.8.1.tgz
./configure prefix=/usr/local/python3
make && make install
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
修改一下yum的配置
vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
#安装bzt
pip3 install bzt
jmeter目录
[root@abc-60 yam]# ll /usr/local/src/apache-jmeter-5.3/printable_docs/demos/
总用量 180
-rw-rw-r-- 1 root root 6913 2月 1 1980 AssertionTestPlan.jmx
-rw-rw-r-- 1 root root 9162 2月 1 1980 AuthManagerTestPlan.jmx
-rw-rw-r-- 1 root root 2170 2月 1 1980 BeanShellAssertion.bsh
-rw-rw-r-- 1 root root 19170 2月 1 1980 ForEachTest2.jmx
-rw-rw-r-- 1 root root 7440 2月 1 1980 forEachTestPlan.jmx
-rw-rw-r-- 1 root root 5359 2月 1 1980 HeaderManagerTestPlan.jmx
-rw-rw-r-- 1 root root 14281 2月 1 1980 InterleaveTestPlan2.jmx
-rw-rw-r-- 1 root root 9801 2月 1 1980 InterleaveTestPlan.jmx
-rw-rw-r-- 1 root root 25828 2月 1 1980 JDBC-Pre-Post-Processor.jmx
-rw-rw-r-- 1 root root 6146 2月 1 1980 JMSPointToPoint.jmx
-rw-rw-r-- 1 root root 7368 2月 1 1980 LoopTestPlan.jmx
-rw-rw-r-- 1 root root 7860 2月 1 1980 OnceOnlyTestPlan.jmx
-rw-rw-r-- 1 root root 1617 2月 1 1980 ProxyServerTestPlan.jmx
-rw-rw-r-- 1 root root 11386 2月 1 1980 RegEx-User-Parameters.jmx
-rw-rw-r-- 1 root root 10371 2月 1 1980 SimpleTestPlan.jmx
-rw-rw-r-- 1 root root 9446 2月 1 1980 URLRewritingExample.jmx
cp /usr/local/src/apache-jmeter-5.3/printable_docs/demos/impleTestPlan.jmx /usr/local/yam
直接运行 JMX 文件,但对于 YAML,将 JMX 文件 传入 Taurus 也是一个相当简单的过程:
1 cat jm-1.yml
settings:
env:
BASE_DIR: /usr/local/yam # 脚本目录
artifacts-dir: i/usr/local/yam/%Y-%m-%d_%H-%M # path where to save artifacts, default is %Y-%m-%d_%H-%M-%S.%f
execution:
- scenario: simple1 # 场景名称
scenarios:
simple1:
script: '${BASE_DIR}/SimpleTestPlan.jmx' # 脚本
modules:
jmeter:
download-link: 'https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-{version}.zip' # 下载地址
version: 5.3 # 版本号
reporting:
- module: final-stats # 摘要报告
- module: console # 控制台
首次运行
[root@abc-60 yam]# bzt jm-1.yml
16:39:00 INFO: Taurus CLI Tool v1.14.2
16:39:00 INFO: Starting with configs: ['hjm.yml']
16:39:00 INFO: Configuring...
16:39:00 INFO: Artifacts dir: /usr/local/yam/i/usr/local/yam/2020-06-15_16-39
16:39:00 INFO: Preparing...
第2次正式测试运行
[root@abc-60 yam]# cat jm.yml
settings:
env:
BASE_DIR: /usr/local/yam # 脚本目录
artifacts-dir: /usr/local/yam/%Y-%m-%d_%H-%M # path where to save artifacts, default is %Y-%m-%d_%H-%M-%S.%f
scenarios:
my_scenario:
requests:
- label: Home
url: / #路径
method: GET #请求方式
execution:
- concurrency: 10 #并发线程数
ramp-up: 1m # 启动时间
hold-for: 1m30s # 持续时间
scenario: # 测试场景
default-address: http://www.kfc.cn/ # 请求地址
requests:
- include-scenario: my_scenario # 场景名称
reporting:
- module: final-stats # 摘要报告
- module: console # 控制台
modules:
jmeter:
download-link: 'https://mirror.bit.edu.cn/apache/jmeter/binaries/apache-jmeter-{version}.zip' # 下载地址
version: 5.3 # 版本号
运行
[root@abc-60 yam]# bzt jm.yml
得到以下
最后文件说明
文件说明:
bzt.log :Taurus 日志。包含 Taurus 的全部输出,对于故障排除非常有用;
effective.json:最终的 Taurus JSON 格式的配置文件。它包含合并的输入文件,配置默认值,任何覆盖的属性等;
effective.yml:与 effective.json 相同,但采用 YAML 格式。Taurus 不会在 YAML 和 JSON 之间进行区分,并且能够使用任何格式,因此任何一种都很好;
errors.jtl:启用了所有诊断字段的 XML 格式的 JMete 结果文件。能够在“ 查看结果树”监听器中查看完整的请求和响应详细信息;
example.yml:通过命令行提供给 Taurus 的 YAML 配置文件;
jmeter-bzt.properties:任何 JMeter 属性覆盖;
jmeter.log:一个非常默认的 JMeter 日志文件;
kpi.jtl:主要结果文件,其名称代表关键绩效指标,其中包括:
采样器时间戳,标签和持续时间
响应消息和代码
采样器是否成功
连接和延迟指标
活动线程号
merged.json:Taurus 配置文件。它包含合并的,用户提供的配置文件(YAML或JSON),但未应用默认值或替代值;
merged.yml:与上述相同,但采用 YAML 格式;
modified_requests:与 requests.jmx 相同,并且通过 YAML 由 Taurus 驱动的更改;
requests.jmx:将 YAML 配置文件转换为 JMeter.jmx 格式;
system.properties:有效的 JVM 系统属性。
如前所述,就 JMeter 而言,Taurus 提供以下报告:
运行时的摘要控制台
测试结束时的统计数据;
2个.jtl 结果文件:
CSV-适用于成功的采样器;
XML-包含请求/响应的完整详细信息的失败采样器;
因此, kpi.jtl 和 errors.jtl 用于结果分析,而其他用于调试目的。