您的位置:首页 > 其它

Jmeter参数化功能用法

2017-03-04 18:54 253 查看
Jmeter参数化:

参数化的作用主要是将我们访问服务器的信息可以通过变量进行封装,更加符合多用户的访问服务器的场景,未进行参数化之前,访问服务器只能通过URL或者变量设置固定的值,这就造成模拟的用户请求信息都是相同的,显示环境中是不可能的,Jmeter参数可以实现不同的用户用不同的请求信息访问服务器。

Jmeter属性和变量的区别:

属性:定义一些配置参数,可以分为系统属性和Jmeter属性,Jmeter属性记录在jmeter.properties文件中,里面记录Jmeter的详细配置信息:

Preferred GUI language. Comment out to use the JVM default locale’s language.

language=en

language设置Jmeter GUI界面的显示语言,建议使用英语,有些中文翻译不是很好,容易产生误解。

属性值获取:

${__P(user.dir,HHHHH)},:user.dir:存在的属性,HHHHH,属性不存在则使用默认值

变量:Jmeter测试计划中可以变化的量,可以实现参数化的效果

变量值获取: ${变量名}

变量和属性的最大区别:属性是所有的线程共享,变量归所有的线程独享,不想使用不会影响(类似Java线程的ThreadLocal对象)

属性的查看:

jmeter.properties文件

workbench–>add(Non-Test Elements)–>property dispaly



Jmeter添加变量的方法:

①:测试计划直接定义:所有采样器共享



②:采样器内部定义:



③:添加配置元件:User Defined Variables

④:添加配置元件:CSV Data Set Config(批量导入请求参数)

用户自定义变量测试:

①:创建服务端模拟程序:

package com.zhiwei.control;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String requestParam01 = request.getParameter("name");
String requestParam02 = request.getParameter("passwd");

response.setContentType("text/html;charset=utf-8");

StringBuffer sb = new StringBuffer();
sb.append("Hello "+requestParam01);
if(requestParam02!=null){
sb.append(";passwd="+requestParam02);
}
sb.append("!");
response.getWriter().println(sb);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

}


②:配置Http请求采样器



③:运行测试计划





结果:自定义变量测试成功

Jmeter批量导入变量信息,实现参数化:

①:配置CSV Data Set Config



②:Http请求采样器配置:



③:测试计划启动



“线程-6”请求参数:name=maliu&passwd=maliu



“线程-4”请求参数:name=lisi&passwd=lisi

结论:线程-4 、线程-6的请求参数不一致,说明Jmeter的参数化配置成功

补充:测试的资源文件info.dat内容:

userName,userPasswd
squirrel,xiaoyang
zhangsan,zhangsan
lisi,lisi
wangwu,wangwu
maliu,maliu
tianqi,tianqi
wangba,wangba
squirrel,xiaoyang
zhangsan,zhangsan
lisi,lisi
wangwu,wangwu
maliu,maliu
tianqi,tianqi
wangba,wangba
squirrel,xiaoyang
zhangsan,zhangsan
lisi,lisi
wangwu,wangwu
maliu,maliu
tianqi,tianqi
wangba,wangba
squirrel,xiaoyang
zhangsan,zhangsan
lisi,lisi
wangwu,wangwu
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息