快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Jmeter接口测试与数据驱动

一. 背景

成都创新互联公司是一家集网站建设,沧源企业网站建设,沧源品牌网站建设,网站定制,沧源网站建设报价,网络营销,网络优化,沧源网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

数据驱动Data Driven Testing(DDT),是一种用于创建自动化测试的方法,或者说是一种架构, 本质是输入数据和用这些数据获取测试结果, 使测试逻辑和测试数据分离.

DDT的优点是测试工程师不必为每一个输入数据创建一个单独的测试用例, 测试在一个实例中创建, 并且输入测试数据和预期结果在表格文件中获取.

二. Jmeter 数据驱动

首先创建url.csv文件作为输入测试数据, 内容如下:

Jmeter接口测试与数据驱动

以上内容保存退出后也可以用文本编辑器编辑, 注意标点符号

我是mac os, 保存目录为/Users/louiezhou/home/url.csv

csv数据设置文件中要用到这个路径

被测接口如下:

  • get方法: https://postman-echo.com/get?foo1=bar1  

  • get方法: https://postman-echo.com/get?foo2=bar2

  • post方法: https://postman-echo.com/post  入参{"foo1":"bar1","foo2":"bar2"}

API文档来源: https://docs.postman-echo.com/?version=latest#078883ea-ac9e-842e-8f41-784b59a33722

接下来到jmeter里, 首先创建一个线程组

Jmeter接口测试与数据驱动

在该线程组下创建一个普通http请求, 命名为postman-echo_header, 用于和数据驱动比较

Jmeter接口测试与数据驱动

添加一个循环控制器

Jmeter接口测试与数据驱动

循环数量和数据表格文件中用例数量推荐保持一致.

在循环控制器下添加csv 数据文件设置

Jmeter接口测试与数据驱动

在循环控制器下添加if 控制器,命名为if_get

Jmeter接口测试与数据驱动

jmeter 5.0 + 版本, if控制器和old version 略有不同.

此处添加if主要是判断如果是get方法就走这个if_get控制器, 如果是post方法, 就走if_post控制器.

在if_get控制器下添加一个http请求

命名规则为: ${caseSeq}_${apiSeq}_${apiName}

用例编号_API版本_API名称, 这样命名更为直观,便于理解

 Jmeter接口测试与数据驱动

${apiType} =https 为API请求协议

${host} =postman-echo.com  在用户自定义变量中定义

${url}=/get

${param}=  foo1=bar1

拼接完整的是: https://postman-echo.com/get?foo1=bar1  

再来看if控制器的if_post

仍然是在循环控制器下新建一个if控制器,命名为if_post

Jmeter接口测试与数据驱动

在if_post下新建一个http请求, 命名规则同if_get下http一致

Jmeter接口测试与数据驱动

${param}={“foo1”:”bar1”, “foo2”:”bar2”}

拼接完整的请求是:

https://postman-echo.com/post

POST data:

{"foo1":"bar1","foo2":"bar2"}

因为是post方式, 入参方式与get有所区别, 因此还需要在该http下声明一个http信息管理头

Jmeter接口测试与数据驱动

主流程到这里就完成了, 接下来看下零碎的地方

给每个http请求加上断言

Jmeter接口测试与数据驱动

虽然他们的预期值都是变量${expectValue}, 但实际值是不同的

用例C001的预期值:${expectValue}: foo1=bar1

用例C002的预期值${expectValue}:foo2=bar2

用例C003的预期值${expectValue}: {“foo1”:”bar1”,”foo2”:”bar2”}

再来看下用户自定义变量

Jmeter接口测试与数据驱动

目录层级结构

Jmeter接口测试与数据驱动

添加相应的监听即可执行了.

接下来看执行结果

Jmeter接口测试与数据驱动

Jmeter接口测试与数据驱动

Jmeter接口测试与数据驱动

Jmeter接口测试与数据驱动

Jmeter接口测试与数据驱动

Jmeter接口测试与数据驱动

Jmeter接口测试与数据驱动

在数据表格文件中还有些参数没有用到, 比如priority字段, 可以根据需求适当添加相应判断, 本篇幅仅为抛砖引玉, 如您有更好的idea, 欢迎抛过来.

最后来一碗鸡汤:

你现在的生活水平,是你三年前的工作状态决定的;而你现在的努力程度,会决定你三年后的生活;软件行业是个逆水行舟,不进则退的行业,既然选择了这个行业,那么就要努力地“敲”下去。

今日精选推荐

JMeter接口测试-if控制器

JMeter数据库操作

Jmeter接口测试-正则表达式

JMeter中文返回乱码

Jmeter接口测试-参数化

JMeter接口测试-基础

测试-感想

咨询工作加微信

Jmeter接口测试与数据驱动

扫描二维码

欢迎自荐和推荐, 需要的微信推送简历!

请猛戳下面二维码了解更多

Jmeter接口测试与数据驱动


新闻标题:Jmeter接口测试与数据驱动
当前链接:http://6mz.cn/article/gjgoos.html

其他资讯