Jmeter(七)Jmeter脚本优化(数据与脚本分离)

时间:2022-11-12 15:58:31

  午休时间再来记一记,嗯。。回顾着使用Jmeter的历程,想着日常都会用到的一些功能、一些组件;敲定了本篇的主题----------是的、脚本优化。

  说起脚本优化,为什么要优化?又怎么优化?是个永恒的话题。因为毕竟每个人的精力不同、业务不同、需要不同;但是可以肯定的是,但凡有做自动化之类(骚操作),那么便离不开一个概念。什么呢?-------脚本与数据分离

  何谓“脚本与数据分离”?

  所谓脚本与数据分离,可以举一个简单例子,2016年,具体不清楚是什么时间,在逛微博的时候,看到德国的一条杀鸡流水生产线,以一小时杀5000多只鸡的速度而闻名(具体是不是世界第一,就不纠结了,只是举个例子),而工作人员只需要在生产线的开始阶段将活鸡扔进去,直接就可以去流水线的结束段收获成果,质量是非常之高,活鸡进去,出来的都是一块一块的鸡腿、鸡脖子、鸡头、鸡爪(当然是洗干净的,哈哈);OK,回到本主题,脚本与数据分离也是这个道理,流水线我不动,至于它是怎么工作的,提前设计好就OK,只需要扔原料即可,因此,此处的脚本便可以理解成流水线、而数据源便可以理解成鸡啦。怎么动数据无所谓,流水线(脚本)都是按照设计来进行执行的(哈哈、可能举的例子有点抽象,但是大概意思明白就OK)。

  当然,现今,脚本与数据进行分离已经成为自动化的基本要求;除此之外,还有一个“业务与脚本分离”,这个概念以后再记。

  那么Jmeter如何实现“脚本与数据分离”呢?

  Jmeter经过这么多年的发展,丰富的组件完全可以满足此要求。

  OK,还是百度的例子!

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  可以看到,我模拟了一个参数user并传入123进行请求;

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  请求中user参数以及传入的123是发过去了,暂时忽略请求的成功与失败。

  那么,我再添加一个请求,baidu--首页--2;给user的参数传入321;

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  其他的协议,服务器名称,端口号,路径都一致;

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  可以看到321也传成功了;

  那么,在请求中那些一直的部分很繁琐,一个两个请求可以进行手动写,那么几百个呢?

  放心、Jmeter有处理这方面的组件。

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  是的,就是它喽,可以看到它和HTTP请求的界面几乎一般无二,但是实现的功能确实完全不一样的;

  我们将baidu--首页--1和baidu--首页--2,两个HTTP请求*同的地方提取了出来,放入HTTP请求默认值中,唯一没变的是它的传参,请求一下试试,看看监听器的内容

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  呐、都是POST请求,https://www.baidu.com/

  因此,完全可以实现,简化脚本、简化工作量的目标。

  截止此步,一个http协议的Jmeter脚本优化便完成了。

  那么,又回到刚刚的问题,不是“数据与脚本分离”么?这么看来也并没有实现数据与脚本分离嘛。。

  Jmeter读取本地的文件(支持最好的是csv文件)也有很丰富的插件,暂且提一种方式进行读取外部文件,其余的后续会做逐一记录。

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  是的,就是它CSV Data Set Config

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  Filename:文件名(包含路径)

  Fileencoding:文件编码格式

  variable name(comma-delimited):变量名---默认以下方的逗号分隔符进行分隔

  Ignore first line (only used if variable names is not empty):忽略第一行(仅在变量名称不为空时使用);忽略CSV文件的第一行,只有在变量名不为空时才使用,如果变量名为空,则第一行必须包含标题。

  Delimiter(user【\t】for tab):分隔符

  Allow quoted data?:CSV文件是否应该允许引用值?如果启用,则值可以被括在“ - 双引号 - 允许值包含分隔符。

  Recycle on EOF?:文件是否应该从EOF开始重新读取?(是否循环读取)(默认是true)

  stop thread on EOF?:在EOF停止线程?如果回收错误,则再EOF处停止线程

  sharing mode:共享模式;所有线程 - (默认)文件在所有线程之间共享;

              当前线程组 - 每个文件为其中显示该元素的每个线程组打开一次
              当前线程 - 每个线程分别打开每个文件
              标识符 - 共享相同标识符的所有线程共享相同的文件。因此,例如,如果您有4个线程组,则可以使用两个或多个组的共同ID来共享它们之间的文件。或者,您可以使用线程号在不同线程组中的相同线程号之间共享文件。

  很多人会忽略这部分内容,当然具体的用法,以及场景后续记。

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  外部csv文件内容

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  HTTP请求默认值、HTTP请求中引用方式

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

OK,看运行结果

  Jmeter(七)Jmeter脚本优化(数据与脚本分离)

  与上方是完全一致的,如此呢,我们就达到了一个“数据与脚本分离”,虽然说简单了点,没有业务逻辑的处理、判断条件等,但是目的也已经达到了。

  服务器配置信息,协议、地址、端口号、请求参数、等等都可以进行在外部文件中进行更改,完全可以不用更改脚本;虽然此处的脚本可能太过于简单了点,但是无非就是说明一个道理,Jmeter是可以完成这部分工作的,相信在特别大的系统中,你能看到Jmeter这部分效果的。

  OK,还有大把大把的工作等着俺处理、、、、今天就先记到这块。

  

Jmeter(七)Jmeter脚本优化(数据与脚本分离)的更多相关文章

  1. jmeter压力测试的简单实例+badboy脚本录制(一个简单的网页用户登录测试的结果)

    JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...

  2. jmeter压力测试的简单实例+badboy脚本录制

    JMeter的安装:在网上下载,在下载后的zip解压后,在bin目录下找到JMeter.bat文件,双击就可以运行JMeter. http://jmeter.apache.org/ 在使用jmeter ...

  3. Jmeter+Jenkins持续集成(Ant运行脚本)

    Jmeter接口测试脚本运行后生成的是jtl(xml)格式的文件,这些文件不具备可读性,所以我们要把他转化为可以阅读的html格式报告. Ant是一个功能强大的打包编译工具.我们使用他的目的是将xml ...

  4. python接口测试-项目实践(七)脚本优化

    七 脚本优化:重复代码的提取成函数:与项目接口相关的都封装到一个类中:添加手工验证脚本,增加输入值的判断逻辑 将所有与该项目接口相关的封装成类 class ProjectApi: #3个数据源接口 d ...

  5. Loadrunner脚本优化-参数化之关联MySQL数据库获取数据

    脚本优化-参数化之关联MySQL数据库获取数据 by:授客 QQ:1033553122 测试环境: Loadrunner 11 Win7 64位 实操: 1.   安装MySQL ODBC驱动程序 O ...

  6. JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)

    JMeter (3) -- JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial) 主要内容 JMeter录制脚本并进行压力测试用户登陆场景,并以CAS SSO单点 ...

  7. 【jmeter】jMeter使用Badboy录制Web测试脚本

    JMeter 是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放 功能,同时提供图形结果分析功能,刚好弥补 ...

  8. Jmeter 03 Jmeter脚本开发

    JMeter 工作区介绍 JMeter Http 协议录制 JMeter 脚本调测 JMeter 关联 JMeter 参数化 JMeter 检查点 JMeter 事务 JMeter 集合点 JMete ...

  9. jmeter之非GUI启动与执行脚本

    启动jmeter的图形界面可以从dos窗口输命令启动:图形界面还是比较占资源的,这时候可以通过dos窗口来执行脚本,获取性能结果 目录 1.dos窗口启动jmeter图形界面 2.dos窗口执行脚本, ...

随机推荐

  1. [译]:Orchard入门——给网站添加页面

    原文链接:Adding Pages to Your Site 注:内容为官方文档翻译,本人遇到的page中间是布局,而非官网的body--但此内容可以在内容定义里自行修改(本文不做介绍) 在创建Orc ...

  2. 通过C#来加载X509格式证书文件并生成RSA对象

    private static RSACryptoServiceProvider GetPrivateKey(string priKeyFile, string keyPwd) { var pc = n ...

  3. Python之三层菜单

    三层菜单,根据用户所选数字,进入子菜单.一级一级呈现. menu = { 'Beijing': { "ChaoYang": { "CBD": ['CICC', ...

  4. LeetCode——TwoSum

    题目: Given an array of integers, find two numbers such that they add up to a specific target number. ...

  5. 谷歌将一些弱小的库从安卓代码移除Google Removes Vulnerable Library from Android

    Google this week released the November 2018 set of security patches for its Android platform, which ...

  6. echarts 设置数据加载遮罩层

    //显示加载数据的loading        chart.showLoading({            text: "图表数据正在努力加载...",            x ...

  7. Codeforces Round #113 (Div. 2) B. Polygons Andrew求凸包

    B. Polygons time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  8. 转 cxgrid属性说明

    TCXGRID控件:属性:ActiveLevel: 当前层BorderStyle: 窗口风格Color: 颜色FocusedView: 当前View;Font: 字体LevelTabs: 类似Page ...

  9. Ex 5_26 变量约束是否能同时满足(并查集)_第九次作业

    利用并查集进行处理,定义一个维护数组components,components[i]表示变量序号为i的变量所处的集合,首先处理相等的变量,把它们放入同一个集合中,最后再处理不相等变量,若两个不相等的变 ...

  10. Linux Distribution 分支

    https://distrowatch.com/ DistroWatch是一个包含了各种Linux发行版及其他*/开放源代码的类Unix操作系统的新闻.人气排名.以及其他一般信息等的网站.它包含了数 ...