• 4
  • 3
分享

  说到Jmeter,大家都知道是做接口测试和性能测试的一个工具。很多人脑中会浮现参数化、集合点、检查点等名词,前两篇已经介绍了Jmeter的入门操作,那今天我们就来看如何修改我们的脚本来实现参数化。

  举例是我一贯的风格,之前举例截图中,Jmeter都是中文版的操作界面,但是小白根据我的文章进行搭建环境后,发现是英文版的。其实Jmeter自带语言转换功能。操作如下:

  点击”Options”->”Choose Language”->”Chinese(Simplified)”

5-1.png

  还有一种方法,在Jmeter的bin目录下,找到jmeter.properties文件,右键编辑如下图:

  其中#language=en,#代表注释,language=en代表语言设置为英文。其实此时这个配置是不生效的,只不过Jmeter默认使用英文。我们可以把前面的#删除,使这项配置生效。把en改成zh_CN,就是把语言改成了中文。

5-2.png

  推荐大家使用第二种方法,就是在配置文件jmeter.properties中修改。因为第一种方法是临时的,关闭Jmeter后再次打开,又变成了英文。而第二种方式是永久的。

  言归正传,接下来我们就来谈谈参数化。参数化的方法有很多种,比如CSV Data Set Config、函数、计数器、用户定义变量等。我们就一个一个来练练手吧。

  一、CSV Data Set Config

5-3.png


  说到参数化,可能网上的一些教程只会告诉你CSV Data Set Config,但是我认为参数化一共有4类,这4类中常用的有7种。那么我们就先聊聊烂大街的方法CSV Data Set Config。还是以中信银行的基金搜索接口为例,在线程组鼠标右键选择”添加”->”配置元件”->”CSV Data Set Config”

5-4.png

5-5.png

  1.文件名:可以输入参数文件的绝对路径或相对路径,参数文件可以保存在txt或csv文件里,比如D:\apache-jmeter-5.3\project\data.txt。若脚本文件和参数化的文件在同一个目录下,如下图:

5-6.png

5-7.png

  那么CSV Data Set Config的文件名还可以输入相对路径,例如”data.txt”和”./data/data.csv”都是可以的。Jmeter5.3版本,我测试过,路径名输入正斜杠或反斜杠,都可以找到参数文件,大家再也不用担心斜杠输错了。

  2.文件编码:大部分情况下都是UTF-8,如果出现中文乱码可以尝试下GBK。

  3.变量名:接口请求时,引用这个参数化的变量名称,多个变量用英文逗号隔开

  4.忽略首行:若参数文件的数据量较小,可以设置成FALSE。若较多建议设置成TRUE(实际上就是表头)

  5.分隔符:参数文件里多个参数之间用分隔符隔开,默认情况下是英文逗号,但是如果你的参数带逗号比如第一个参数是”hello,we go”,第二个参数是”你好,我们走”,此时若使用默认分隔符,系统会认为有4个参数,第一个是hello第二个是we go,第三个是你好,第四个是我们走;这时要修改CSV Data Set Config里的分隔符,观察发现两个参数中都不含”==”,所以我们可以把分隔符改成== ,分隔符如何设置全凭个人喜好,只要参数中没有这个符号即可。

  后面4个不常用,使用默认配置就行了。

5-8.png

5-9.png

5-10.png

  可以看到第三次请求调用的就是第三组的参数A和3。

  二、用户定义变量

  这次我们加一个接口,产品搜索接口,产品搜索界面如下。

5-11.png

  用户定义变量有两个地方可以设置,第一个是测试计划、第二个是配置元件。首先看一下测试计划,点击测试计划节点,点击添加,输入变量名称和变量值,接口应用变量的方式和CSV一样,${key}

5-12.png

  第二个配置元件,线程组鼠标右键”添加”->”配置元件”->”用户定义变量”

5-13.png

  两者区别在于测试计划中设置的变量,是针对所有线程,所有请求的。而配置元件添加的用户定义变量,是根据他的上级节点决定的。若上级节点是线程,则只对这个线程起作用,若上级节点是请求,则只对这个请求起作用,若上级节点是测试计划,则对所有线程的所有请求都起作用。比如图中的配置元件,就只对“搜索有关的接口”这个线程组起作用。

  这两个接口,都有一个搜索框,功能完全相同,所以这2个接口的文本框搜索字段,都输入${key},测试时,只要修改用户定义变量里的值,就可以了,不用去逐一修改每个接口。当接口多的时候,很方便。



作者:合肥人真帅   

来源:51Testing软件测试网原创


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:阿常,我们在实际测试中经常会出现漏测,客户经常会向我们提出优化的点,想请教一下,业务测试需要怎么测,才能避免发生漏测现象 ?阿常回答:首先我们需要定位漏测的点是属于哪一个类型,然后再针对具体情况具体分析:1、测试用例里面遗漏了这个测试点解决方案:参与需求评审,深入理解业务,提高用例的需求覆盖率。2、没有执行测试用例中的该测试点解决方案:严格执行测试用例中的每一条 case,做到极致的测试执行。3、产品设计类错误,需求文档错误解决方案:需求评审时,不放过每一个业务细节,遇到产品设计不合理的地方一定要深究,坦诚地和产品经理当面提出来,最终将错误纠正。4、其他用户体验相关的优化类问题解决方...
            0 0 2029
            分享
          •   小编已经在内测抽奖系统了,快来填问卷、赢礼品吧!链接:http://vote.51testing.com/   (本次礼包好物多多:大容量马克杯、畅销测试书籍)  在初学Python过程中,会遇到这样的概念,一个类下面会有多个方法,有的叫类方法、有的叫静态方法,还有的叫实例方法。当调用他们的时候,不免会有点蒙圈,那么他们之间的区别是什么呢?  和类属性一样,类方法可以进行细致地划分为类方法、实例方法和静态方法。  表象区别就是:  类方法前用@classmethod修饰  静态方法前用@staticmethod修饰  不加任何修饰的就是实例方法(普通方法)  用法区别 ...
            0 0 1350
            分享
          • 引言:不知不觉中成为一名测试攻城狮已将近7年之久,在这期间做过不少API接口测试。最早接触的API接口在项目中称之为(webservice),期间走了不少弯路。也收获了不少的经验,现分享下在测试的路上走过的坑。第一阶段小白初体验:初始接触API是在11年,第一次接触API接口一脸的懵逼,很茫然不知如何下手测试,对http网络协议也不了解。后来由研发同学提供对应接口web界面,测试时进入对应接口界面,在textbox输入对应参数值提交后查看返回值。但刚幵始一脸懵逼,返回值也不清楚是否正确,每次都是把研发同学叫过来直接看结果。严重耽误了效率,后来不断的自我反思,在研发同学的不断讲解API知识。不断...
            0 0 1292
            分享
          •   性能测试在当今企业系统中起到的作用越来越重要,但在执行性能测试的过程中往往会遇到一些问题:  一、项目紧急,不具备独立的性能测试环境,功能测试和性能测试在一套环境同时执行测试时,其测试过程和测试结果会相互影响,导致结果不够客观。如果我们能在白天完成录制性能测试脚本,晚上自动执行脚本,这样便能规避它们之间的影响。虽然Jmeter可以利用自身定时器实现脚本的定时执行,但性能测试的执行过程中一般要同步监控应用服务器和数据库服务器的资源消耗情况,但在连续执行多支性能测试交易,无法做到每支交易的执行过程和资源监控过程一一对应。我们本次研究的第一个目标是想通过在批量执行多支交易的每支交易时自动调起云下...
            0 0 766
            分享
          •   1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性。  2.接口测试流程:   1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方式和返回,抓包可以通过fiddler、charles或者chrome的开发者工具等   2)接口测试用例设计:根据获取到的接口信息,按照接口测试用例设计方法,设计参数和预期返回结果   3)接口发包:使用工具或者编程向接口传递参数   4)返回信息验证:获取接口返回的结果,进行解析和验证  3.测试某网站的接口,包括:鉴权、登录和注销   1)鉴权接口url:http://www.XX...
            4 6 3317
            分享
      • 51testing软件测试圈微信