Jmeter包含四个部分:
(1) 负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。
(2) 用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。
(3) 资源生成器:用于生成测试过程中服务器,负载机的资源数据。
(4) 报表生成器:根据测试中获得的数生成报表,提供可视化的数据显示方式。
测试计划元件:
Test Plan(测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就是说本次的性能测试是基于一个计划的。
Threads Users线程用户:这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中不会发生改变的。
测试片段(Test Fragment):测试片段元件是控制器上的一个特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不会被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。
控制器:Jmeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动一个测试。
Building a web Test Plan
100用户*2request*1次=200个http请求
要建立这个测试计划,你需要用到下面的元素:
Thread Group(线程组)
Http Request(http请求)
Http Request Defaults(http默认请求)
Graph Results(曲线图结果)
一:Adding Users
第一步添加线程组,这也是Jmeter每一个测试必须的,线程组告诉Jmeter你想模拟多少用户,发送请求的频率和他们应该发送多少请求。
下一步,你需要修改默认值:
1. 给线程组提供一个描述性的名称。例如:jmeter users
2. 增加用户的数量。(称为线程数)。输入100
3. 下一个输入框,Ramp-Up period(增强,爬坡期),默认值为1s,改为10s。Jmeter将在10s内启动你所有的用户进程。所以如果我们有100个用户,且设置Ramp-up时间为10s,那么启动每个用户的延长时间为(100users/10s=10users per second)0.1s。如果你设置爬坡时间为0,那么Jmeter会立刻启动你所有的用户进程。
4. 最后,保持循环次数为默认值1.这项告诉Jmeter重复你的测试多少次。如果你输入1,将执行一次测试,想让Jmeter不停地执行测试,勾上永远选项。
第二步:Adding Default HTTP Request Properties
现在我们来定义我们的用户,是时候来定义他们将要执行的任务了。本小节,将会详细的说明HTTP Requests的默认设置。下一节,你将会增加Http Request元素,会用到你在此处定义的默认配置。
添加一个HTTP请求默认值
二:Adding cookie support
几乎所有的web测试都需要用到cookie的支持,除非你的程序明确的没有用到cookies。增加cookies的支持,仅需要在你的测试计划的每个进程组增加一个HTTP cookie Manager。
选择Thread Group-àconfig ElementàHttp Cookie Manage
三.Adding HTTP Request
在测试计划里,我们需要建立两个HTTP Requests。
HTTP请求1 http://gps123.sinaapp.com/wp-login.php
在添加一个HTTP 请求2 ,包含登录post的所有参数。
之所以会提交两个HTTP请求,是为了在HTTP请求1的时候获取cookie的这个参数:wordpress_test_cookie=WP+Cookie+check
存放到HTTP Cookie
管理器里面。(你只需要添加HTTP Cookie管理器,J
meter会自动添加,无须手动添加。)
四.Adding a Listener to view store the Test Results
最后,你需要给测试计划增加一个监听,这个元件是把你的HTTP Request
结果保存成一个文件或者以图表的形式展示。
可以通过响应的数据,判断请求(登录)是否成功。
还可以添加其他的监听器,根据实际情况来添加。