![dbba30a25a657cd61b4278111cbb16fa.gif](https://img8.php1.cn/3cdc5/18a53/bdf/c8889bbf02d59c40.gif)
传统的接口测试,都是在接口中手动输入不同用例准备的多种场景参数数据,一遍一遍的输入来执行多个不同的用例,但是现在利用excel表格准备各种类型的数据,使用Jmeter中Jmeter CSV Data Set Config参数化实现可设置的、一次性的读取excel表中多个或者全部用例设计的数据,一次性看到多个用例数据运行出相应的结果。这样可以避免了每次去更改参数值的烦恼,也减少修改参数出错的机率。这样大大减少了测试人员的工作量,并且也提高了接口测试用例的执行效率。Jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化,使用方法如下:
一、数据准备
准备数据文件,一般以 .csv,.dat 等结尾的文件,数据之间的分隔符可用 ,或者 tab。
其中,将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题,以下就是解决的办法:先制作一个excel表格,导出存为.csv格式的文件。读取txt中的数据也是类似方法。
二、数据读取
使用CSV Data Set Config参数化将csv里面的数据读取,以下是CSV Data Set Config各个参数使用说明:
(1)Filename:数据文件的路径。
(2)Delimiter:数据之间的分隔符可用 ,或者 tab。
(3)Allow Quoated data: 双引号相关,例:如果参数中需包含,或者”等,该项可以选择True。
(4)Recycle on EOF: 设置为True后,允许循环取值
(5)Stop Thread EOF: 当Recycle on EOF为false并且Stop Thread EOF 为true,则读完csv文件中的记录后,停止运行,线程数及执行次数无效。
(6)Sharing Mode:共享模式:
All threads:所有线程,所有线程循环取值,线程1取第一行,线程二取下一行。
Current thread group:当前线程组,各个线程组分别循环取值。
Current thread:当前线程,该测试计划内的所有线程都取第一行。
三、参数的应用
本实例是以居民端H5的XXXX接口为例,体验一下Jmeter通过获取excel中的用例数据运行一堆用例的过程,体验一下数据驱动的执行方式:
1.先准备测试数据,准备了多条不同的测试用例的数据
2.使用benshell将数据获得
![fe47f5ba4d3f9bdeacb9c5dea0526537.png](https://img8.php1.cn/3cdc5/18a53/bdf/67ba037c01731b0a.jpeg)
3.下面是添加一个Debug sampler(里面什么也不用,设置保持默认)
Debug Sampler介绍:
使用Jmeter开发脚本时,难免需要调试,这时可以使用Jmeter的Debug Sampler,它有三个选项:JMeter properties,JMeter variables,System properties:
(1)JMeter properties和System properties:通常都选false,这两个就是JMeter和系统的属性,在Jmeter的bin的jmeter.properties中定义,一般都不会变。
(2)JMeter variables:这个是我们自已定义的变量,定义的方式有如下这些:
a) 选中测试计划(Test plan),在右边的面板上添加User Defined Variables
b) 选中线程组,右键选择 配置元件( config element)-->User Defined Variables
c) 通过后置处理器生成的变量
d)使用csv参数化的变量
4.添加一个http post接口,传参需是json格式,因此要先配置http信息头管理器
![882a0688f5a3c9e40fdc8226854db91c.png](https://img8.php1.cn/3cdc5/18a53/bdf/66ae5d4af761085e.jpeg)
![f92395c6bbc0fc715f859e55053299b1.png](https://img8.php1.cn/3cdc5/18a53/bdf/03c77db49f524cf6.jpeg)
5.添加线程组的察看结果树
根据设置的执行用例数目,比如:100,则执行excel表中相应的100条用例数据,并输出对应的结果,也可以进行对应的压测。此时会把excel中准备的数据前100条用例都会执行一遍,如果进行压测时,则可以把循环的测试次数设置的足够大,比如:1000,查看聚合报告,就可以看到接口测试压力测试的情况了很方便。
(1)察看结果树
![273b4ce9be717a7a991e3d0f225b6738.png](https://img8.php1.cn/3cdc5/18a53/bdf/2bc01b64b47bbd44.jpeg)
(2)聚合报告。对接口遍历100个用例的压测,其运行得到的聚合报告图,如下:
![e33bebeb51d664efbff32fd9c1d7704e.png](https://img8.php1.cn/3cdc5/18a53/bdf/d4b0d4ff5590a1e2.jpeg)
![f8fd9b1f27e070fe09fd253eeee58a37.png](https://img8.php1.cn/3cdc5/18a53/bdf/343f5a98e43aa68d.png)
![aafadb5438202611365636a7589dbe7e.png](https://img8.php1.cn/3cdc5/18a53/bdf/f04fcca1b55ca88a.jpeg)
本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51testing进行删除。
推荐阅读点击阅读☞基于Jmeter和Testlink的自动化测试框架研究与实施
点击阅读☞Jmeter服务器监控插件使用
点击阅读☞基于Jmeter和Testlink的自动化测试框架研究与实施
点击阅读☞如何使用Jmeter模拟爬虫测试
点击阅读☞使用SoapUI和Jmeter接口测试的结构区别(以图为例)
![efb1f95c844d115251a8b858cf02140c.gif](https://img8.php1.cn/3cdc5/18a53/bdf/f0e4334ffcc8bf90.gif)
戳
![cecc43f89273a6bb0f6871481fbbb0e6.gif](https://img8.php1.cn/3cdc5/18a53/bdf/d05a91923d8d4e52.gif)
![2d0d51fad27143cd1eecb1ea34e2e1e5.png](https://img8.php1.cn/3cdc5/18a53/bdf/695fa106f2f6b6f4.png)
爱我请给我好看!
![cecc43f89273a6bb0f6871481fbbb0e6.gif](https://img8.php1.cn/3cdc5/18a53/bdf/d05a91923d8d4e52.gif)