代码实现接口自动化测试

一、接口自动化测试

1.1、简介

接口自动化:使用工具或代码代替人对接口进行测试的技术

测试目的:防止开发修改代码时引入新的问题

测试时机:
        开发进行系统测试转测前,可以先进行接口自动化脚本的编写。
        开发进行系统测试转测后,优先进行系统测试用例的执行,再进行接口自动化脚本的编写。

1.2、接口自动化测试流程 

1、选取自动化测试用例
        优先级高(先实现业务流程用例、后实现单接口用例)
        功能稳定

2、搭建自动化测试环境
         核心技术:
                编程语言:python(也可以使用其他语言)
                测试框架:pytest
                接口请求:requests(python可以发送请求的工具包)

总结

什么时候开展接口自动化测试?
        开发提测前,优先开展接口自动化测试。
        开发提测后,优先开展系统测试、后开展接口自动化测试。

如何开展接口自动化测试?

        ①选取自动化测试用例

        ②搭建自动化测试环境

        ③搭建自动化测试框架

        ④代码实现自动化

        ⑤输出测试报告
        ⑥实现持续集成

二、接口自动化测试框架

2.1、简介

2.2、接口自动化框架设计思路

1、搭建基础框架——定义项目目录结构
2、通用功能类封装——封装通用功能,如:数据库工具类等
3、接口对象封装与调用——封装接口API对象+PyTest框架编写测试脚本 
4、测试数据参数化——测试数据ison文件设计、参数化实现
5、用例组织运行——组织测试用例运行,生成测试报告

2.3、搭建基础框架-定义项目目录结构

目录结构如下所示: 

三、Requests库

3.1、简介

Requests库:python中的“浏览器”,基于python自带的urllib的HTTP库

安装命令:pip install requests

验证命令:pip show requests

操作步骤:
        1、导包
        2、发送接口请求
        3、查看响应数据

3.2、Requests发送请求

模板:

对应的参数说明: 

3.3、Response查看响应

3.4、 案例:登录接口调试-获取图片验证码

需求:使用requests访问验证码接口,并查看响应结果
地址:http://kdtx-test.itheimanet/api/captchalmage

步骤分析:

 对应的自动化测试代码

 3.5、案例:登录接口调试-登录

需求:使用requests访问登录接口,并查看响应结果。

地址: http://kdtx-test.itheima.net/api/login

请求方法:Post

请求数据:
        请求头: Content-Type: application/json
        请求体:{"username":"manager","password","123456","code","2","uuid":"验证码接口返回结果中的数据值"}

实现步骤:

1、导包

2、发送接口请求

3、查看响应结果

实现代码:

总结:

如何使用requests发送GET/POST/PUT/DELETE请求?

requests.GET/POST/PUT/DELETE(url) 

如何使用requests提交JSON数据?

requests.请求方法(url,json)

如何使用requests设置请求头信息?

requests.请求方法(url, headers)

Response对象常见方法有哪些?
        获取响应状态码: response.status_code

        获取json响应数据: response.json()
        获取文本响应数据:response.text

四、接口对象封装

前面存在的问题: 每次登录之前都需要手动复制验证码接口的uuid数据。

思路:

核心思想:代码分层思想

 实现登录接口对象封装与调用

4.1、接口对象层

重点:接口封装时,重点是依据接口文档封装接口信息,需要使用的测试数据是从测试用例传递的、接口方法被调用时需要返回对应的响应结果。

代码实现如下:

4.2、测试脚本层

 代码实现:

 总结:

接口对象封装的核心思想?

分层代码思想

        接口对象层(重点关注接口封装调用)

        测试脚本层(重点注测试数据准备、断言及业务处理等)

五、合同新增业务

5.1、实现课程添加接口对象封装与调用

接口信息 

重点:如何处理课程添加接口对登录接口的依赖? 

代码实现如下

接口对象层:

测试脚本层:

 

 

5.2、实现合同上传接口对象封装与调用 

接口信息:

重点: 如何提交multipart/form-data数据?

Requests处理multipart/form-data,使用files参数

接口对象层: 

 测试脚本层:

1、导包

2、实例化 

3、合同文件放入data

4、 上传合同测试

5.3、实现新增合同接口对象封装与调用

 接口对象层:

测试脚本层 

总结:

接口自动化代码核心思想?

代码分层思想

        接口对象层(重点关注接口封装调用)

        测试脚本层(重点注测试数据准备、断言及业务处理等)

代码中如何解决接口之间的数据依赖?

使用python中的变量或属性传递接口依赖数据

Requests中如何处理multipart/form-data 请求数据?

六、 登录接口测试

需求:
完成测试脚本的业务
实现针对响应结果进行断言

测试用例:

 测试类:

 

 6.1、数据驱动

定义:以测试数据驱动脚本执行,维护焦点从脚本转向测试数据的一种自动化测试设计模式。 

如何实现数据驱动:

代码实现:

6.2、针对KDTX项目登录接口实现数据驱动 (JSON)

需求:
针对登录接口,将请求数据和断言数据组织成JSON文件,完成自动化测试

1、创建测试用例的json文件

 2、对JSON文件进行读取

 总结:

七、课程添加接口实现自动化测试

测试用例:

 

代码实现:

 

八、查询课程列表接口实现自动化测试

测试用例:

封装接口

前置登录的判断同七一致

 业务测试

九、课程修改接口实现自动化测试 

 测试用例

封装接口api:

登陆判断同前面一致

 测试代码

十、 课程删除接口实现自动化测试

测试用例

 封装api接口

 

十一、项目配置文件

域名统一放在config中

根路径为 

用到路径的代码可以修改为 

十二、Allure报告 

 allure,帮助文档: https://docs.qameta.io/allure

介绍
        能生成美观易读的报告
        支持多种开发语言,如java、python等
        能快速上手
操作步骤:
        生成测试结果文件 (json文件)
        使用allure命令生成在线报告

创建pytest.ini

在终端窗口中,执行如下命令,会运行满足条件的类,方法

生成在线报告执行如下命令:

在线报告如图所示:

总结:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值