常看到的jmeter测试例子,都是用固定的url(包括固定的参数)。现在我有这样一个测试需求:为了模拟用户输入的参数对某个URL进行负载测试(或压力测试)。用户访问的URL(主要的就是参数)可以在web服务器的访问日志的分解得到,这样测试数据准备好,现要jmeter根据这些测试数据去做负载测试。

找了一些资料,找到了解压方案:用Jmeter提供的 CSV Data Set Config ,它可以为每一个线程的每一个测试(取样)给新的一行数据。然后在在取样器里用${}方式来引用它们。

一般 csv 中的行数都会大于线程数,可以把测试任务放到一个循环控制器中,下面来演示下创建一个这样的测试计划:

1、一个线程组

用5个线程,这5个线程20秒内启动完,仅做一次。

2、创建一个循环控制器

每个线程循环2次,这样就相当与对服务器2*5=10次请求,CSV 数据一般会多于10行记录。

3、创建一个 CSV Data Set Config

demo_test.csv 文件放到 “Demo 测试计划.jmx”的相同目录,文件编写用GBK,测试计划可引用的属性名是sub_url(多个用逗号分隔,一般有多少列数据就有多少属性),数据分隔用\t(tab)。

4、创建一个HTTP 请求(取样器)

路径中引用 CSV 中的数据,${sub_url}。

5、创建一个断言

我这里服务器有错是返回非200的响应代码是正确的。

现在就配好了,可以在demo_test.csv文件里加些参数,然后试用下,在察看结果树可以看到服务器返回的结果,同时可以验证下是否每个线程的每次请求是否为csv中的新一行。

posted on 2011-11-02 17:58  猥琐丶欲为  阅读(9213)  评论(0编辑  收藏  举报