Python接口自动化测试实战-----附源码
目录
接口定义:
接口普遍有两种意思,一种是API(Application Program Interface),应用编程接口,它是一组定义、程序及协议的集合,通过API接口实现计算机软件之间的相互通信。而另外一种则是Interface,它是面向对象语言如java,c#等中一个规范,它可以实现多继承的功能。接口测试中的接口指的是API。
为什么要使用接口:
假如公司的产品前端开发还没开发完,接口开发好了。有天领导说,小王,你测下这个登录功能,要是你不懂接口的话就会对领导说这个功能测不了啊,页面没开发完。领导会把你!@¥@)¥!
接口测试是不需要看前端页面的,可以更早的介入到测试工作中,提高工作效率。

根据测试金字塔,越底层成本越低,一个底层的bug可能会引起上一层的多个bug,所以测试越底层,越能保证产品的质量,也越能节省测试的成本。而单元测试一般是由开发来完成的,所以对于测试来说,接口测试是非常必要的。
对于自动化测试来说,UI的变动性最大,所以UI自动化测试的维护成本很高。而接口的改动很小,所以接口自动化测试是最实用,最节约成本的。
2. 基本流程
接口功能自动化测试流程如下:
需求分析 -> 用例设计 -> 脚本开发 -> 测试执行 -> 结果分析
2.1 示例接口
手机号码归属地
接口地址:http://apis.juhe.cn/mobile/get
返回格式:json/xml
请求方式:get
请求示例:http://apis.juhe.cn/mobile/get?phone=手机号&key=您申请的KEY
3. 需求分析
需求分析是参考需求、设计等文档,在了解需求的基础上还需清楚内部的实现逻辑,并且可以在这一阶段提出需求、设计存在的不合理或遗漏之处。
如:手机号归属地接口,输入不同号码段的手机号,查看手机号归属和手机号码属于哪个运营商
4. 用例设计
5. 脚本开发
5.1 模块安装
使用pip命令安装即可:
pip install requests
5.2 接口调用
使用requests库,我们可以很方便的编写上述接口调用方法(如输入phone=手机号,示例代码如下):
在实际编写自动化测试脚本时,我们需要进行一些封装。
如需源码,请关注私聊本人。谢谢

我们按照测试用例设计,依次编写每个功能的自动化测试脚本即可。
5.3 结果校验
在手工测试接口的时候,我们需要通过接口返回的结果判断本次测试是否通过,自动化测试也是如此。
对于本次的接口,输入手机,我们需要判断返回的结果resultcode是不是等于200结果分页时需要校验返回的结果数是否正确等。完整结果校验代码如下:
如需源码,请关注私聊本人。谢谢

运行结果:
5.4 生成测试报告
用例执行完之后,那就需要发报告给领导。
那么我们使用HTMLTestRunner第3方模块插件生成html格式测试报告


5.5发送邮件报告
测试完成之后,我们可以使用zmail模块提供的方法发送html格式测试报告
基本流程是读取测试报告 -> 添加邮件内容及附件 -> 连接邮件服务器 -> 发送邮件 -> 退出,示例代码如下:

6. 结果分析
打开完成后生成的测试报告,可以看出本次测试共执行了2条测试用例,1条成功,1条失败
最终发送测试报告邮件,截图如下:
如需源码,请关注私聊本人。谢谢
如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到893694563,群内会有不定期的分享测试资料。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
Python接口自动化测试实战-----附源码的更多相关文章
- Python 基于python实现的http接口自动化测试框架(含源码)
基于python实现的http+json协议接口自动化测试框架(含源码) by:授客 QQ:1033553122 欢迎加入软件性能测试交流 QQ群:7156436 由于篇幅问题,采用百度网 ...
- 13行代码实现:Python实时视频采集(附源码)
一.前言 本文是<人脸识别完整项目实战>系列博文第3部分:程序设计篇(Python版),第1节<Python实时视频采集程序设计>,本章内容系统介绍:基于Python+open ...
- python - 接口自动化测试实战 - case1 - 再次优化版
本次优化: 1. 各级分Package 2. 封装[ReadExcel]类 3. 封装[ReadConfig]类 4. 封装[GetLog]类 5. 引入ddt数据驱动测试,优化测试用例代码 ...
- python - 接口自动化测试实战 - case1 - 优化版
题目: 基于以下两个接口和数据完成接口自动化测试,并生成测试报告: '''登录 login='http://47.107.168.87:8080/futureloan/mvc/api/member/l ...
- python怎么连接MySQL(附源码)
一.源码如下: import pymysql from pymysql.cursors import DictCursor # 创建数据库连接 localhost等效于127.0.0.1 conn = ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)
C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...
随机推荐
- MySQL 数据库、数据表、数据的基本操作
1.数据库(database)管理 1.1 create 创建数据库 create database firstDB; 1.2 show 查看所有数据库 mysql> show database ...
- COM笔记-Widows 注册表
Widows 注册表 HKEY_CLASSES_ROOT在此关键字之下,可以看到有一个CLSID关键字.在CLSID关键字之下列有系统中安装的所有组件的CLSID.注册表CLSID是一个具有如下格式的 ...
- C#基础知识---动态为类型添加属性
一.概述 通常情况下,我们是事先在类型中定义好属性的,但有时候,我们需要动态为一个类型添加某些属性,这个时候,我们就需要使用DynamicObject类型了. 二.Demo using System; ...
- c++与c#混合编程
C#写界面比较方便,而C++则擅长写算法,所以将两者结合起来将会加快程序的开发速度,并保证程序的质量.但C#与C++的混合编程有很多细节问题需要注意,下面简要列举一些并指出相应的解决办法. 1. 将本 ...
- SpringMVC的拦截器和过滤器的区别
一 简介 (1)过滤器: 依赖于servlet容器.在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次.使用过滤器的目的是用来做一些过滤操作,获取我们 ...
- JDBC中的元数据——1.数据库元数据
package metadata; import java.sql.Connection; import java.sql.DatabaseMetaData; import javax.sql.Dat ...
- Windows10下MySQL的安装
简单介绍一下MySQL的安装 官方网址:https://www.mysql.com/downloads/ 1.找到MySQL Community Edition (GPL) (注:GPL版本为开源,非 ...
- 4种Golang并发操作中常见的死锁情形
摘要:什么是死锁,在Go的协程里面死锁通常就是永久阻塞了,你拿着我的东西,要我先给你然后再给我,我拿着你的东西又让你先给我,不然就不给你.我俩都这么想,这事就解决不了了. 本文分享自华为云社区< ...
- Kickstart部署之NFS架构
原文转自:https://www.cnblogs.com/itzgr/p/10200615.html作者:木二 目录 一 准备 1.1 完整架构:Kickstart+DHCP+NFS+TFTP+PXE ...
- Panel添加边框颜色和边框粗细调整
Panel控件添加边框颜色 C# WinForm窗体控件Panel修改边框颜色以及边框宽度方法 - JiYF - 博客园 (cnblogs.com) 1.新建一个用户控件的项目,如下: 2.添加一个P ...
