JMeter介绍
Jmeter的下载地址:http://jakarta.apache.org/jmeter/usermanual/index.html
JMeter 的特性:
a) 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
b) 完全的可移植性和100% 纯Java。
c) 完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。
d) 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
e) 精心的GUI设计允许快速操作和更精确的计时。
f) 缓存和离线分析/回放测试结果。
g) 高可扩展性:
h) 可链接的取样器允许无限制的测试能力。
i) 各种负载统计表和可链接的计时器可供选择。
j) 数据分析和可视化插件提供了很好的可扩展性以及 以及个性化。
k) 具有提供动态输入到测试的功能(包括Javascrīpt)。
l) 支持脚本变成的取样器(在1.9.2及以上版本支持BeanShell)。
首先建立一个线程组(Thread Group),为什么所有的请求都要加入线程组这个组件呢?不加不行吗?答案当然是不行的。因为jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。
选中线程组(Thread Group),鼠标右键添加HTTP Request。这里不需要cookie管理器(HTTP Cookie Manager),因为这是我们手动添加的请求,不是录制的,但要求不是严格,cookie管理器可加也可不加。
我这里有2个请求
[全国]0727测试BD信息快递产品01变更03
http://p.ftuan.com/mall_quanguo_14448.shtml?s=1000&a=00011033008051010100000000010103
[海淀学院路]0727测试BD信息F券产品02
http://p.ftuan.com/xiuxian_haidian_14447.shtml?s=1000&a=00010244004076010100000000110103
先添加第一个请求,第二个请求我使用参数化URL的方法来进行(试试在path中参数化能不能成功,分析了上面2个请求,域名都是相同的,唯独不同的只有后面的URL)
然后添加聚合报告(Aggregate Report)和查看结果树(View Results Tree)
完整的脚本结构:
保存脚本,然后运行一下,看看我们发过去的请求是否可以得到服务器相应的返回数据。
第一个请求的URL:
发送URL请求后的返回:
一切返回正确。
下面来参数化另外一个页面的URL请求:
把域名后面的URL放到一个记事本中,另存为URL.txt,存放在D盘根目录
选中线程组,在其下面添加配置元件CSV Data Set Config
参数化的方法在另外一个文档中。
然后根据CSV Data Set Config中的变量名称,找到HTTP请求中的path数据
修改线程组运行次数,确保这2个URL都要被线程执行到
开始运行脚本
这两个URL都被执行到了,并且结果返回正确,测试可知在http请求的path路径上做参数化是可行的。
再看一下脚本的结构树:且要记住一点,所有任务都是由线程来执行的,所以所有任务都要分在线程下面,一个脚本个建立多个线程组。