jmeter作为一款开源的测试工具,功能广泛,深受测试同胞们的喜爱,这次来讲讲关于如何参数化及其方式。那为什么要进行一个参数化呢,如做压测时,要有大量的数据来模拟用户的真实场景,像登录页面操作,系统是不允许相同的用户同时登录,那这就需要对用户名进行一个参数化;或者是订票系统,每个用户在订票时时间都是不一样的,那为了达到真实的场景,就需要对时间进行一个参数化。参数化对于大量的重复的批量的数据保存一个变量,从而每次执行时,只需读取这个变量即可

jmeter有三大种参数化方式①读取文本,②程序生成,③从数据库里读取

一读取文本:

         读取文本呢又有三种方法,这简直了。在桌面上新建一个文本文档,里面输入要参数化的数据 (前提是都有在数据库里),这些是用户名跟密码,那为了工作方便,密码我都是设一样的

第一种方法:打开jmeter,点击选项—函数助手对话框,这列表开头是按abc顺序排列的,选择—CSVRead

然后将你新建的文本目录地址复制到名称对应的值里

把拷贝下来的字符串放在你要变量的位置上,那我这边是对用户名进行的参数化

我在线程组里添加四个线程,运行一下看下察看结果树

参数化成功

第二种方法:在测试计划右键添加—配置文件—csv数据文件设置

在CSV数据文件页面设置一下:

第三种方法:在测试计划右键添加—配置文件—bzm-Random CSV Data Set Config

我用的jmeter是4.0版本,可能有一些同学没有这个,或者是这个插件,打开jmeter目录,在这目录下F:\testing\tour\apache-jmeter-4.0\lib\ext加一个jar包文件                        jmeter-plugins-manager-0.20.jar  ,这个插件如果有同学需要可以网上下载也可以找我拿,然后重启jmeter,这个图标就出现了,然后点击这个图标搜索安装Random Csv Data Set ,安装好后再重启一下jmeter

这个参数化方式是官方新推出的功能,好使,能够随机提取

二程序生成:

      程序生成也是有很多种,这边来列几个常用的。点击选项—函数助手对话框

1、__machineIP:读取你当前的电脑IP地址

2、__machineName:读取你的机器名字

3、__Random:随机生成一个数字,如设最小值1,最大值100,会随机生成1~100间的数字,可用于年龄,手机号,不适用于注册

4、__RandomDate:随机生成日期,日期:yyyy-MM-dd,key可用于订票,下订单,出生年月日等等

5、__RandomString:随机生成字符串,如英文名,性别等

6、__time:生成实时时间,yyyy-MM-dd HH:mm:ss(固定格式)

这边来搞一搞如何来批量注册用户名,我们可以录制注册操作的脚本或是使用fiddle抓包工具来获取,那在注册那边参数改一下

关于关联下篇会继续更新

在线程组右键添加-配置文件—计时器

在计时器页面设置一下

由这个方法可以很容易的快速制造大量数据

三数据库读取:

    首先连接数据库,关于连接数据库上篇就有详细唠嗑过,先在测试计划页面里添加一个驱动

在测试计划右键添加如下:

然后在JDBC Connection 页面设置

然后继续在线程组右键添加—sampler—JDBC Requst,在这页面上呢写一个SQL语句,查询表里的所有用户名

查询出来表里的所有用户名,把这些放入到name里

线程组右键添加—逻辑控制—ForEach控制器,把每个用户迭代出来

应用场景,如果说你要看每个用户的个人信息,它的URL后都是username=tname(name表里的每一个用户)

那么直接在URL后加入参数化

线程组就只有一个线程,你点击运行后会一直运行,运行多少回呢,直到把name里的所有用户都运行完就会结束

这三大种参数化方式就又唠嗑完了。。。。。

下篇唠唠关联等等

jmeter的脚本增强之参数化的更多相关文章

  1. JMeter脚本增强之参数化

    JMeter测试脚本录制或者编写,在Web应用和App上的操作方式可能有一点点区别(其实也差不多,哈哈),但是当脚本录制好了之后,对测试脚本的强化,包括参数化.关联.文本检查.集合点设置,甚至再往后的 ...

  2. jmeter调试脚本之变量参数化

    前言 对于参数化,觉得用得最多的应该是csvread函数.csv data config以及用户自定义变量(前一篇文章已经进行了讲解)控制器这几个 案例:bugfree ,提交bug,参数bug名称和 ...

  3. LR性能测试脚本增强与调试

    脚本增强与调试 一般来说,使用LR的Vugen录制的脚本并不能直接用于测试,需要对脚本进行各方面的增强,主要包括添加注释.关联.检查点.事务.参数化.日志输出等.下面结合刚完成的一个web项目性能测试 ...

  4. Loadrunner VuGen实战---基本组成、录制流程、协议、脚本优化、参数化(三)

    一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的 ...

  5. 性能测试十二:jmeter进阶之java请求参数化

    如项目中的ip.端口号之类的,都可以在此代码中定义 public Arguments getDefaultParameters() { // TODO Auto-generated method st ...

  6. 【JMeter】【性能测试】参数化,内存溢出问题

    这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为 ...

  7. Jmeter常用脚本开发之Debug Sampler

    Debug Sampler编辑脚本时调试用的,跟Java项目打断点测试同理,它可以Debug Jmeter中所有自定义变量的值 如何添加Debug Sampler? 打开测试计划—>线程组—&g ...

  8. Jmeter 录制脚本

    Jmeter中有2种方法可以录制脚本.  不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用. 像我这么精通HTTP协议的人. 一直都是使用Fiddler来抓包,然后自己写脚本. 无论 ...

  9. LoadRunner如何在注册业务脚本中设置参数化唯一性

    LR在录制一个网站注册业务的脚本时,突然间遇到一个问题:注册时,由于注册用户需要验证唯一性,所以在LR回放脚本时,用Run-time Viewer工具回放可以发现(先在脚本中设置几个断点),真实运行的 ...

随机推荐

  1. jquery分页例子

    先看效果图: 实现原理很简单,使用了jquery.pagination这个插件,每当点击页码时异步去服务器去取该页的数据,简单介绍如下: 一.数据库表结构:很简单  就四个字段 分别是News_id  ...

  2. 解决vuex requires a Promise polyfill in this browser问题

    造成这种现象的原因归根究底就是浏览器对ES6中的promise无法支持,因此需要通过引入babel-polyfill来是我们的浏览器正常使用es6的功能 首先通过npm来安装: npm install ...

  3. js 模拟百度关键字搜索与跳转

    测试效果: css样式: ul{ display:none; } html代码: <input type="text" id="text" /> & ...

  4. caffe 学习(2)——基本原理

    参考 http://caffe.berkeleyvision.org/tutorial/ 表达:models和optimizations使用纯文本文档形式定义,不是用代码定义: 速度:适用于工业和科研 ...

  5. webapi 获取json数据

    一般的我们可以直接使用参数来接受,这个就不多介绍了 [HttpGet] public IHttpActionResult Test2([FromUri]string name) { object ob ...

  6. bootstrap-table页码ALL显示为NAN

    在github上查阅找到的解决办法: https://github.com/wenzhixin/bootstrap-table/issues/435 页面部分: data-page-list=&quo ...

  7. Epub 阅读器 - iOS

    因项目需求接触的 EPub 阅读器,前前后后尝试了很多库,最后找到了个相对兼容不错的展开了调试;其中对解压缩和数据加载方面进行了改造优化,使其更加的完美; 其大概原理是首先将 epub 文件解压后得到 ...

  8. 给出一个整数,将这个整数中每位上的数字进行反转(JavaScript编程)

    一.问题描述:给出一个整数,将这个整数中每位上的数字进行反转.示例:输入:123,输出321:输入-123,输出-321:输入120,输出-21 二.问题分析与解决: 需要将给出的整数反转,注意示例中 ...

  9. 闲谈Hybrid

    前言 当经常需要更换样式,产品迭代,那么我们应该考虑hybrid混合开发,上层使用Html&Css&JS做业务开发,底层透明化.上层多多样化,这种场景非常有利于前端介入,非常适合业务快 ...

  10. stack permutation

    #include <iostream> #include <stack> #include <queue> using namespace std; bool ch ...