| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 【测试】详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手) -> 正文阅读 |
|
[网络协议]【测试】详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手) |
前言大家好,我是洋子。在之前的文章《详解接口测试(1)-常见的网络通信协议》当中,我们介绍了接口的概念以及各种类型的接口用到的网络通信协议。鉴于HTTP网络协议使用最为广泛,本文将会基于HTTP协议的接口对其讲解如何进行接口测试,内容包含以下部分:
接口测试是什么接口测试是对测试系统组件间接口进行测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系 调用一个接口A后,通常会触发下面的业务逻辑
从上面我们可以得知,调用一个接口后,数据的流动情况。以上述业务逻辑(*)为例,有两条最基本的数据流,分别是写入数据流和查询数据流
所以在接口测试时,涉及数据库相关的逻辑,我们都需要去检查数据库或者缓存里的数据是否符合预期,这是一个很重要的测试点,测试点可以转换成接口测试用例,在下面会谈到如何设计接口测试用例 细心的小伙伴可能会问,光看接口文档,我怎么知道一个接口调用后背后都做了些什么? 想要彻底了解清楚调用接口后触发的业务逻辑,更好的进行质量保障,需要测试人员直接去看懂开发写的代码,并进行 如果看不到开发写的代码,只进行 不过对于互联网大厂的服务端测试来说,测试一个业务需求一般是code review + 接口测试 + 白盒测试 结合起来进行,这样能更好的保障所测需求的质量 HTTP接口的测试用例设计和功能测试一样,在进行接口测试前,需要进行接口的测试用例设计,用例设计也不是凭空想象,我们需要以相关文档为依据
由于HTTP协议的接口应用非常广泛,下面以HTTP协议接口为例,教大家设计接口测试用例 一个合格的HTTP接口文档,至少应具备如下信息,即
开发提供的接口文档可能存在不规范或者压根没有接口文档的情况,这时候需要推动开发补齐信息,不然对测试来说没有接口文档就无法提前设计用例,并且进行测试也比较困难 如果实在没有接口文档,那么测试只能通过 有了接口文档以后,我们就可以开始接口测试用例的设计,而接口测试用例设计的重点,在于功能性的 另外对于客户端功能测试的用例设计方法,如等价类和边界值,在接口测试用例设计对于设计输入参数的部分同样适用,如对于请求参数的有大小限制,运用边界值设计,我们可以分别取 接口业务逻辑处理的接口用例设计是重中之重,对于这方面的用例设计,除了仔细看接口文档,还需要我们详细阅读开发写的技术方案,在技术方案当中一般有 如以下时序图,我们可以清晰的知道每个接口做了哪些操作,关键参数传递,数据如何存放、消费等,从而方便检查当调用接口后数据的落库情况,以及调用接口后业务逻辑是否符合预期 接口用例设计小结如果
代码覆盖率是用来量化接口测试用例的覆盖程度,想要了解的朋友可以看下我之前的文章《什么是代码覆盖率》 HTTP接口的测试方法接口测试用例设计完毕后,我们就可以开始正式进行接口测试了,一般接口测试都是对单个接口按照接口用例逐一进行测试 而接口测试方法,最开始可以使用 手工测试可以用来做接口测试的工具非常多, 我这里还是给大家简单介绍一下Postman的常用功能,其他工具使用在以后的文章当中再为大家介绍 为了方便演示,我这里先使用Charles抓包获取某个接口信息(正常的接口测试流程,开发会提供接口文档,但这时候没有,我们就自己抓把),设置好Charles的代理后(还不知道怎么使用Charles可以看我以前的文章《Charles从入门到精通》),打开B站网页版
抓取到接口信息后,除了手动填写接口信息到Postman当中,我们还可以通过Charles拷贝CURL功能,直接导入到Postman,省去手动填写的时间 自动化测试当接口手工测试完毕后,我们就可以着手进行接口自动化测试用例以及相关代码的编写,使用 Python 或者 Java等语言结合自动化测试框架,编写自动化测试脚本,实现接口自动化测试、结合持续集成自动执行及自动发送测试报告等环节 接口自动化测试框架,我们可以自己造轮子,也可以使用成熟的框架,一个好的接口自动化测试框架应该涵盖以下几点:
先说一下自己造轮子,我这里用Python给大家例子,下面这段代码就可以实现发送HTTP请求,但接口URL域名都是写死的,我们需要改写,把公共的部分抽象出来
抽象出一个Common类
最后看看如何调用
完成到这里,我们自己只是完成了接口的发送通用化,如何进行用例管理,如何发送测试报告我们都还没有做,往往还是要跟开源的测试框架结合,比如Java的JUnit、Python的Unittest等等 所以洋子还是不太建议自己去手动造轮子,因为成熟的接口自动化框架有非常多,已经非常完善,如果有定制化需求,我们也可以基于这些框架进行二次开发修改,如果用Python,我们可以使用unittest/pytest/robotframewok/httprunner/nose等等。如果用Java,可以使用Junit/TestNG/REST-assured等框架 我自己之前已经写过robotframewok框架的使用教程,感兴趣可以查看文章《在培训机构也学不到的Robot Framework自动化测试企业级实战教程》 接口测试策略前面我们所谈到的接口测试,都是对接口的功能层面进行测试。如果接口需要承载的QPS非常高,我们还需要进行接口的性能测试。如果该接口涉及交易等重要场景,还需要进行接口安全测试 结束语本文跟大家介绍了HTTP接口的测试用例设计以及测试方法,记得要多加练习,我们才能掌握接口测试,如果你觉得这篇文章还不错的话,麻烦点一下【赞】和【在看】 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:35:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |