java grid++report 接口数据实现 对接_接口自动化测试企业级项目实战1

手把手教你从0开始实施企业级接口自动化测试项目

本篇将收获:

  • 搭建项目框架,Python+Pytest+Allure

  • 配置host,封装登录接口,md5加密实现

  • 用faker类库构建入参测试数据

  • 封装读取Excel

  • 运用pytest框架

  • 生成allure测试报告

  • 实现测试用例:验证所有入参是否必填

  • 实现测试用例:验证所有入参是否必传

01

项目基本结构框架

项目基本结构框架(分层):

  • config  配置文件

  • data 测试数据文件

  • lib 存放实现api访问的文件

  • log 日志文件

  • report 测试报告

  • test_case 测试用例

  • util 工具类

1b76d1b1f44e08ee9f84e792c30f976d.png

02

配置host  ·  登录  ·  md5加密

配置host的好处,不用多说

新建config/config.py,配置:

3824166c156bd1f030dbb7872efb50c9.png

如何引用,举例:lib/Login.py

bd570fbb1db1acd701d8cefb9e1f80cd.png

上图中,md5的加密实现:util/Md5Psw.py

8c761a96518056988a01a2839b14a859.png

03

faker 构建测试数据

类似 lib/Login.py ,新建:lib/CreatePres.py

cd5b3ca1a61ca53f652ba7eb72fd9c23.png

接口参数少的情况下,比如 Login,通常只有用户名、密码这两个,手工构建测试数据比较容易,可以采用读取Excel中的入参和期望值,驱动自动化测试

而在企业中,一个接口的入参是很多的,比如 CreatePres接口的基础入参有25个,我们可以采用faker类库,构建测试数据,让入参json引用构建好的变量值

d5e336bc8cf327c53688c60ff8be017e.png

04

Excel 读取方法封装

数据驱动,代码和数据分离,方便测试数据的维护

在data/Login.xls 编写我们的测试数据

7fdb3e9ff5079a84855b26254977c81c.png

封装Excel读取数据,新建 util/ExcelHandle.py

11b5d9840632129e1ae309a40f917a86.png

05

Pytest 实现数据驱动

接下来,引入pytest测试框架,pytest测试文件的命名规则:

  • 测试文件必须以test开头,或_test结尾

  • 测试类必须以Test开头,并且不能有init方法

  • 测试方法必须以test_开头

  • 断言必须用assert

实现Login,新建 test_case/test_login.py

6a1261525ffb9434cb5f73c2b56eb09c.png

06

Allure 生成测试报告

Windows安装allure,下载allure.zip,解压到一个目录中,把目录中的bin路径添加到环境变量path

Mac 安装allure,键入命令:brew install allure

python安装:pip install allure-pytest

输入命令验证是否安装成功:allure

  • cd到test_case所在目录,键入命令:

         pytest -sq --alluredir=../report/tmp

  • 执行命令,生成测试报告:

         allure generate ../report/tmp -o ../report/report --clean

         生成完成,在../report/report目录下,用浏览器打开html文件就是报告

  • 或者,用命令生成完成后,直接打开浏览器展示测试报告:

    allure serve ../report/tmp

1421035b03c908267034d4efd42f16f5.png

07

逐一验证String入参是否必填

在前边「04」,我们通过把入参写在Excel的方式,实现了Login接口的各个参数是否必填的测试。Login的入参少,这样设计还算方便,但是如果换作CreatePres接口,就很崩溃了,25个入参,难道复制25份,逐一把这25个入参换成空,发送调用接口吗?显然不现实

先看一下接口文档,第1列字段名称中的「.」说明了入参的层级关系

db4dc6da143ba3da081f4d94ebabdcd5.png

我们把第2列字段类型为「String」的数据筛选出来,将其入参中对应第1列key的值替换为空。即模拟:org_name为空,其它项目正确填写,发送调用接口,获取返回数据

封装方法,新建util/DataHandle.py

4797ad260b79855ae83562a779aa4b39.png

在测试用例中调用,test_case/test_create_pres:

d05ebf520e6e6111dcb36ee1cbaf4870.png

08

逐一验证入参是否必传

我们常用的接口测试用例,比如正常应传入2个参数,那只传入1个会怎样呢?下边我们来模拟,CreatePres接口的25入参,逐一不传入某个参数,验证后台代码有无正确处理

在util/DataHandle.py,添加方法:

fa7090296f77c52f9bd30114c150d46c.png

再在test_case/test_create_pres中建立对应的测试用例,即完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Grid++Report是一款同时支持C/S软件(桌面程序)与B/S软件(WEB程序)开发的报表工具,功能全面易学易用。C/S开发适用于VB.NET、C#、VB6、VB、VC、Delphi、C++Builder、QT与易语言等。B/S开发适用于ASP.NET(C# & VB.NET),PHP,JSP(JAVA)等,支持所有WEB服务器。开发C/S报表与B/S报表的编程接口、报表模板与报表数据通用,共享相同的开发知识与设计资源。 1. 含C/S报表组件、WEB报表插件、HTML5报表与WEB报表服务器开发的相关文件。 2. 通用报表设计器应用程序,可视化设计报表模板,报表组件、报表插件与HTML5报表都用此程序设计报表模板,同一报表模板可为三种开发模式共 用。 3. 包含大量各种类型,各行各业的报表模板例子,是学习报表设计的最好参考资源。 4. 包含桌面报表(C/S)组件、WEB报表插件、HTML5报表与WEB报表服务器的程序文件与例子文件。报表组件例子程序包括:C#, VB.NET, VB, VC, Delphi, C++Builder、中文编程易语言。Web报表例子程序包括:asp.net(c#)、asp.net(vb)、php、jsp。还有可直接运行的例子应用程序。 帮助文档及其它有关Grid++Report的文档与资源。 5. 请根据帮助文档中的相关说明,首先把例子程序运行起来。请尽量模仿最简单的例子程序开始学习。 6. 整理了C/S报表组件免COM注册发布软件的方法,实现绿色发布用Grid++Report开发的软件,并避免不同版本的Grid++Report发布在同一台电脑的冲突

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值