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

本文介绍了如何从零开始搭建企业级接口自动化测试项目,包括项目框架设置、配置host、登录接口及MD5加密、使用Faker构建测试数据、Excel数据驱动、Pytest测试框架应用以及Allure测试报告生成。详细讲解了各步骤的实现方法和技术要点。
摘要由CSDN通过智能技术生成

手把手教你从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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值