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

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

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

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

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

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

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

  OK,还是百度的例子!

  

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

  

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

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

  

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

  

  可以看到321也传成功了;

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

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

  

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

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

  

  

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

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

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

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

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

  

  是的,就是它CSV Data Set Config

  

  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来共享它们之间的文件。或者,您可以使用线程号在不同线程组中的相同线程号之间共享文件。

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

  

  外部csv文件内容

  

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

  

  

OK,看运行结果

  

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

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

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

  

转载于:https://www.cnblogs.com/richered/p/8341239.html

Jmeter(七)Jmeter脚本优化(数据与脚本分离)相关推荐

  1. Hive面试-情景题总结【包含:建表脚本、数据导入脚本、模拟数据】

    文章目录 前言: 建表语句 load脚本 常见sql情景题 前言: Hive面试除了理论知识外 情景题也占据了很大的比重 总结一下有代表性的几道情景题,可以根据这些情景题来推演其他相似的题型 本锦集并 ...

  2. python编写es脚本_es数据迁移脚本(python)

    #!/usr/bin/python#-*- coding: UTF-8 -*-#文件名:indiceCreate.py importsysimportbase64importtimeimporthtt ...

  3. python逻辑与界面分离_一种数据与逻辑分离的Python单元测试工具

    一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...

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

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

  5. Jenkins+Jmeter、jmeter脚本执行执行失败,jenkins构建成功

    搭建了一套接口自动化环境,一键构建执行接口脚本,生成测试报告,失败情况下,发送邮件通知相关人员. 基本思路是这样的,但是,遇到了一个问题,浏览测试报告格式及查看相关内容是否正确的过程中,发现有测试用例 ...

  6. MeterSphere在开源压测工具JMeter上的分布式优化和实践

    Apache JMeter是一款100%纯Java的开源软件,旨在加载测试功能行为和测量性能.它可以用来测试静态和动态资源的性能,例如静态文件.Java Servlet.CGI Scripts.Jav ...

  7. Jmeter向数据库批量插入数据

    Jmeter向数据库批量插入数据 下面介绍一下Jmeter向mysql数据库中插入数据的入门操作 1.新建一个线程组,这是必经步骤: 在测试计划上右键–>添加–>Theaders(User ...

  8. loadrunner 脚本优化-事务时间简介

    脚本优化-事务时间简介 by:授客 QQ:1033553122 事务概念 事务是指用户在客户端做一种或多种业务所需要的操作集(actions),通过事务开始和结束函数可以标记完成该业务所需要的操作内容 ...

  9. 阿里云物联网平台-数据解析脚本详解

    阿里云物联网平台-数据解析脚本详解 var COMMAND_REPORT = 0x00; //属性上报. var COMMAND_SET = 0x01; //属性设置. var COMMAND_REP ...

最新文章

  1. wampserver下升级php7
  2. 【NOI2015】软件包管理器
  3. php5.5 sqlserver 2012,PHP连接SQLSERVER2012
  4. display:inline-block的深入理解(转)
  5. ORACLE导出导入意外终止导致 ORACLE initialization or shutdown in progress 问题解决
  6. .NET 常用ORM之SubSonic
  7. 最近很火的京东、天猫超市飞天茅台抢购是怎么回事,从原理流程给你们分析一波
  8. matlab 读取 Microsoft Excel 电子表格文件不推荐使用 xlsread
  9. keil的终极配色方案(提供配置文件)
  10. 如何分享带淘宝客的链接到新浪微博
  11. MAC常用软件127
  12. Specular Highlights(镜面光)
  13. python canvas画弧度_编程作战丨如何利用python绘制可爱皮卡丘?
  14. P02014026黄一洋————信息论问题回答
  15. 【西电—英美国家概况(英美概况/英美文化)2023第一学期】第十章参考课后答案
  16. 【看表情包学Linux】GDB 调试教学 | gcc 和 g++ | 函数库
  17. 正则匹配两个字符之间的字符串
  18. 递归习题—排队游戏(C程序设计进阶 第3周)
  19. RTOS学习笔记--时间片调度
  20. magic winmail邮件服务器,使用Magic Winmail Server轻松架设邮件服务器(一)-网管专栏,邮件服务...

热门文章

  1. 2012.4.10 全球IPv6暨下一代互联网高峰会议 日程表
  2. AJAX基础:JavaScript中类的实现
  3. PAT1060. 爱丁顿数
  4. Problem E: 分数统计
  5. java 乘法 位移_Java:移位实现的乘除法
  6. hutol json null值没了_详解Java去除json数据中的null空值问题
  7. 海德薇格:我很期待看到 数字货币将如何改变人民币支付市场
  8. SAP License:家庭主妇与ERP
  9. 赛锐信息:基于SAP ERP系统的企业内部审计介绍
  10. 赛锐信息:SAP系统业务审计介绍