1. JMeter的安装
1.1 下载JMeter : http://jmeter.apache.org/download_jmeter.cgi
选择一个版本比如2.13
1.2 解压 apache-jmeter-2.13.zip 到一个目录中,比如 /home/jyf/jmeter
1.3 将 /home/jyf/jmeter/bin 加入到环境变量中
1.4 环境变量生效后,在命令窗口中输入jmeter,jmeter的界面将被打开, 界面如下:
2. 入门 - 创建简单的脚本测试脚本测试hello world
前提: 已经有一个Restful API,
url: http://localhost:8080/api/private/hello?name={name}
request method: Get
response: hello {name}
2.1 右键点击Test Plan -> Add -> Threads (Users) -> Thread Group, 在右侧面板中找到name, 并修改name为test hello group, 然后保存.
2.2 在左侧面板中,右键点击test hello group-> Add -> Sample -> HTTP Request, 在右侧面板中找到name并修改为test hello request, 然后保存.
2.3 在Server Name or IP中输入localhost,在Port Number中输入8080,在method中选择Get, 在Path中输入:/api/private/hello, 然后在Parameters 区域下方点击add,在name一栏输入name,在value一栏输入world,完成后保存。
2.4 为了观察测试返回的结果,需要创建一个view results tree。右键点击test hello group-> Add -> Listener -> View Results Tree。
2.5 点击工具栏中的绿色运行按钮来运行测试脚本。
2.6 运行完成后,点击左侧的View Results Tree, 每次的运行结果都会被列出来,选择其中的一次运行, 并选择其右侧的tab:Response data。返回结果hello world将显示出来。
3. 入门 - 创建接受JSON数据格式的API性能测试脚本
前提: 已经有一个Restful API,
url: http://localhost:8080/api/private/helloCompany
request method: Post
response: hello {company name}
3.1 右键点击Test Plan -> Add -> Threads (Users) -> Thread Group, 在右侧面板中找到name, 并修改name为test hello company group, 然后保存.
3.2 在左侧面板中,右键点击test hello company group-> Add -> Sample -> HTTP Request, 在右侧面板中找到name并修改为test hello company request, 然后保存.
3.3 在Server Name or IP中输入localhost,在Port Number中输入8080,在method中选择post, 在Path中输入:/api/private/helloCompany, 然后在Body data 区域下方的文本区域输入如下内容:
{
"name": "good Company",
"address": "jk Road",
"phone": "6668888"
}
3.4 (这步不能忘记)在左侧面板中,右键点击test hello company group-> Add -> Config Element -> HTTP Header Manager。点击Add按钮,输入name:content-type,输入value:application/JSON;charset=UTF-8。
再次点击Add按钮,输入name:accept,输入value:*/*
3.5 按照2.4和2.5的步骤运行脚本,结果如下:
4.进阶一:使用properties文件来存放配置参数。
目的:当我们有很多的脚本时,当测试的api url需要改变,那我们需要一个个的脚本修改,这样很麻烦。
JMeter提供了一种方式,就是把这些参数放到properties文件中。具体的步骤如下(以3中的脚本例子):
4.1 右键点击test hello company group-> Add -> Config Element -> User Defined Variables. 点击Add按钮,输入name:url,输入value:${__P(target.host)}. 点击Add按钮,输入name:port,输入value:${__P(target.port)}.
4.2 在左侧面板选择test hello company Request, 把右侧Server Name or IP的值改成${url}, 把Port Number改成${port}
4.3 创建一个properties文件,并在文件中输入如下内容
target.url=localhosttarget.port=8080
4.4 退出JMeter,用命令jmeter -p /*path*/**/**.properties 重新运行JMeter.
4.5 选择3中的脚本,重新运行。检查结果和3的结果一样。
5. 从CSV文件读取测试数据
5.1. 创建一个csv文件, 放在文件夹/User/xyz下,并且命名为company_info.csv
keji1,jinke1,123
keji2,jinke2,456
keji3,jinke3,789
5.2. 在4中创建的properties文件中加入一下内容:
company.info.csv=/User/xyz/company_info.csv
5.3 用命令jmeter -p /*path*/**/**.properties 重新运行JMeter.
5.4 右键点击test hello company group-> Add -> Config Element -> CSV Data Set Config.
在Filename中输入${__P(company.info.csv)}. 在Variable Names中输入companyName, address, telephone.
在Delimeter中输入",". 其他不变。
5.5 在左侧面板选择test hello company Request,把右侧Body Data中内容改成:
{"name": "${companyName}",
"address": "${address}",
"phone": "${telephone}"
}
5.6 在左侧面板选择test hello company group,把右侧Number of Threads中内容改成3.
5.7 运行脚本,在View results tree中看到的结果如下: