jmeter可以用来做接口、性能测试,原理是模拟客户端向服务器发送请求,请求里面包含两种不同情况的参数,一种是包含在URL中,一种是请求中需要发送的参数。

包含在URL中的参数,例如:http://blog.imyalost.com/index.php/2016/11/11/jmeter中,“2016/11/11/jmeter”参数为URL的参数。

请求中需要发送的参数(只能列举GET请求),例如:http://www.it315.org/counter.jsp?name=zhangsan&password=123中,“zhangsan”是参数名,“123”是参数值。

至于POST请求,可以在jmeter脚本中“随请求一起发送的参数”和“随请求一起发送的文件”中找到。

PS:关于GET和POST请求方法,可以参见之前的博客:http://www.cnblogs.com/imyalost/p/5630940.html

对于jmeter脚本里面的参数进行参数化时,使用参数的地方书写格式为$。

关于jmeter的参数化,常用的有2种方法:

首先新建一个测试脚本,可以通过工具(badboy)录制或者自己手动编写

登录请求的界面如下:

这里我们对登录的用户名密码进行参数化,将用户名密码写入txt文档,保存为.dat格式,编码类型选择UTF-8,因为配置元件——CSV Data Set Config对参数化的格式要求比较严格,用户名密码一一对应,之间用半角英文逗号隔开

然后将保存的.dat文件放入计算机的某个盘里,这里我放入路径为:F:\jmeter\csvtest.dat

下面具体介绍参数化的两种方法:

一、借用函数助手

点击jmeter的界面,功能栏选项→ 函数助手对话框→ _CSVRead

CSV file to get values from | *alias:CSV文件取值路径,即这里需要写入之前的需要参数化的参数的文件路径

CSV文件列号| next|*alias:文件起始列号:CSV文件列号是从0开始的,第一列为0,第二列为1,以此类推。。。

函数字符串:即生成的参数化后的参数,可以直接在登陆请求中的参数中引用,第一列为用户名,函数字段号为0,第二列为密码,函数字段号为1,以此类推进行修改使用即可

替换参数化后的参数,然后修改线程数,执行脚本,通过监听器里结果树的请求内容,可以看到请求的参数都是参数化后的数据

二、配置元件——CSV Data Set Config

点击线程组添加配置元件→ CSV Data Set Config:

说明:

Filename:F:\jmeter\csvtest.dat文件名,保存参数化数据的文件目录,可选择相对或者绝对路径(建议填写相对路径,避免脚本迁移时需要修改路径)

File encoding:UTF-8,F:\jmeter\csvtest.dat文件的编码格式,在保存时保存编码格式为UTF-8即可

Variable Names(comma-delimited):对对应参数文件每列的变量名,类似excel文件的文件头,起到标示作用,同时也是后续引用的标识符,建议采用有意义的英文标示

(如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割,这里的 user,pwd,可以被利用变量名来引用:${user},${pwd}

Delimitet:参数文件分隔符,用来在“Variable Names”中分隔参数,与参数文件中的分隔符保持一致即可

Allow quote data:是否允许引用数据,默认false,选项选为“true”的时候对全角字符的处理出现乱码

Recycle on EOF?:是否循环读取参数文件内容;因为CSV Data Set Config一次读入一行,分割后存入若干变量中交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入

△ Ture:为true时,当已读取完参数文件内的测试用例数据,还需继续获取用例数据时,此时会循环读取参数文件数据(即:读取文件到结尾时,再重头读取文件)

False:为false时,若已至文件末尾,则不再继续读取测试数据;通常在“线程组线程数* 线程组循环次数>参数文件行数”时,选用false(即:读取文件到结尾时,停止读取文件)

Stop thread on EOF?:当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义

若为ture,则在读取到参数文件行末尾时,终止参数文件读取线程;

若为false,此时线程继续读取,但会请求错误,因此时读取的数据为EOF

Sharing mode:共享模式,即参数文件的作用域,有以下几种方式:

All threads:当前测试计划中的所有线程中的所有的线程都有效,默认

Current thread group:当前线程组中的线程有效

Current thread:当前线程有效

完成之后,将刚才生成的参数写入参数对应的值里面:

以上就是2中参数化的方法,推荐使用CSV控件方法(因为函数助手参数化功能相比其较弱)

相比于loadrunner来说,jmeter参数化有以下不同:

1.jmeter参数文件第一行没有列名称

2.参数文件的编码,尽量保存为UTF-8(编码问题在使用CSV Data Set Config参数化时要求的比较严格)

3.Jmeter的参数化没有LoadRunner做的出色,它是依赖于线程设置的(只有CSV Data Set Config参数化方法才有)

jmeter(十)参数化的更多相关文章

  1. 7 jmeter之参数化

    badboy里参数化(前面4 jmeter badboy脚本开发技术详解已讲过) jmeter里参数化-1 用户参数 1.打开badboy工具,点击红色按钮开始录制,在地址栏目中输入地址:www.so ...

  2. Jmeter性能测试-----参数化方法CSVRead函数

    Jmeter里面参数化的方法有很多,大家可以结合自己的项目情况来使用哪种方式来调用测试 数据. 下面我给大家介绍下Jmeter里CSVRead函数来获取参数的方法: 我这里已去到直播间发表评论为例(这 ...

  3. JMeter学习-参数化

    JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...

  4. Jmeter(十六) - 从入门到精通 - JMeter前置处理器(详解教程)

    1.简介 前置处理器是在发出“取样器请求”之前执行一些操作.如果将前置处理器附加到取样器元件,则它将在该取样器元件运行之前执行.前置处理器最常用于在取样器请求运行前修改其设置,或更新未从响应文本中提取 ...

  5. Jmeter(十八) - 从入门到精通 - JMeter后置处理器 -下篇(详解教程)

    1.简介 后置处理器是在发出“取样器请求”之后执行一些操作.取样器用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们的势必要对这些响应数据进行处理,后置处理器就是来完成这项工作的.例如 ...

  6. 转 7 jmeter之参数化

    7 jmeter之参数化   badboy里参数化(前面4 jmeter badboy脚本开发技术详解已讲过) jmeter里参数化-1 用户参数 1.打开badboy工具,点击红色按钮开始录制,在地 ...

  7. 聊一聊Jmeter的参数化

    背景 前面一篇讲了 JMeter 的一个最简单的例子,这篇聊一下 JMeter 的参数化. 在开始之前先来一个单元测试的例子,感受一下参数化. 上面是一个用 xUnit 写的单元测试,这个单元测试就是 ...

  8. JMeter学习(十二)JMeter学习参数化User Defined Variables与User Parameters

    相同点:二者都是进行参数化的. 一.User Defined Variables 1.添加方法:选择“线程组”,右键点击添加-Config Element-User Defined Variables ...

  9. Jmeter之参数化

    Jmeter参数化分为两类,一类是在badboy录制脚本时进行参数化,二是再Jmeter里进行参数化 一:badboy录制脚本时进行参数化的步骤 1.脚本录制成功后->在左下角,点击variab ...

  10. JMeter学习参数化User Defined Variables与User Parameters

    偶然发现JMeter中有两个元件(User Defined Variables与User Parameters)很相近,刚开始时我也没注意,两者有什么不同.使用时却发现两者使用场景有些不同,现在小结一 ...

随机推荐

  1. 你真的会玩SQL吗?让人晕头转向的三值逻辑

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. EF 在controller弹出提示消息

    第一种方式: return Content("<script>alert('此名称课程再次班级中已经存在!');window.location.href = 'Course/Cr ...

  3. C# 读取app.config配置文件 节点键值,提示 "配置系统未能初始化" 错误的解决方案

    新建C#项目,在app.config中添加了appSettings项,运行时出现"配置系统未能初始化"的错误,MSDN里写到,如果配置文件中包含 configSections 元素 ...

  4. Entity Framework Plus 系列目录

    Entity Framework Plus 系列文章计划的已经全部写完,可能还有其他功能没有写到,希望大家能够多动手,尝试一下使用,一定会给您带来一些帮助的.文章全部写完,也应该出一个目录方便查看,目 ...

  5. EC笔记:第三部分:17、使用独立的语句将newed对象放入智能指针

    一般的智能指针都是通过一个普通指针来初始化,所以很容易写出以下的代码: #include <iostream> using namespace std; int func1(){ //返回 ...

  6. JDBC_part2_DML以及预编译_编写DBUtil工具类

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! jdbc day02 DML语法 比起插叙语句,没有R ...

  7. GET command找不到

    谷歌的: On running a cronjob with get command, I was getting the following error. /bin/sh: GET: command ...

  8. python学习笔记(python简史)

    一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算.人工智能 ·系统运维 ·金融:量化交 ...

  9. GJM : Unity3D HIAR -【 快速入门 】 二、搭建开发环境

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  10. 修改nginx配置文件解决dx2.5下载附件停止不动的问题

    在下载论坛附件的时候,总是停止在某个字数数不动 如下图 后来查看log发现 如下图 权限拒绝 发现后nginx的配置文件的启动者有关系 改了下 user 为 root 居然好了