Python接口测试实践教程

按主题探索文章、教程与工程实践。

10 篇内容

2017

1.为什么要做接口测试

很多同学反馈现在面试的时候都会问到为什么要做接口测试以及如何做接口测试的问题,那么我们就稍微来科普一下。 本文讨论的接口均是服务级的接口,不是代码级 在讨论为什么要做接口测试之前,我们可以先稍微了解一下接口是什么? 接口可以很不准确的理解成是与资源打交道,这个资源可能是本系统的,也可能是其他系统的。 举个例子,假如我们在开发1个bug管理系统,该系统需要拿到 …

1 分钟阅读

2.最简单的接口长什么样

接口测试由浅入深的学习才可以尽量减少挫败感,避免从入门到放弃的悲剧。 从入门到放弃其实最可惜,毕竟花了那么多时间去学习,最后放弃掉,花费掉的青春就一去不复返了。 我们先来看一下获取资源的接口。 v2ex是一个讨论区,也就是大家常说的论坛,这是一个小众的讨论区,基本上只有程序员光顾。 v2ex里有很多的节点,节点可以理解成是讨论板块,比如这个板块就是讨 …

1 分钟阅读

3.入门级接口测试工具:postman的安装

postman是跨平台的接口调试及测试工具,非常适合初学者使用。 下载地址 请选择相应的版本下载,windows版下载完成后双击安装就好了。 我们发送上一节里提到的获取v2ex节点信息的api。 具体步骤如下 从原理图上可以看出,postman发送请求给服务器,然后从服务器接受响应,最后在postman中展示出来。 上图就是服务器的响应详情,这里包含了一些重 …

1 分钟阅读

4.Json简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是 …

1 分钟阅读

5.3A原则

3A原则原本是单元测试用例编写时应该遵循的基本原则,不过我们可以扩展到接口的自动化测试用例编写中来。 我们首先看一下3A原则在每一层自动化测试中的具体应用。 Arrange: 初始化测试对象或者准备测试数据 Act : 调用被测方法 Assert: 断言 给一个例子(c#) 服务间的接口测试实际上是黑盒测试,3A原则也适用于这种测试用例的编写 A: …

1 分钟阅读

6.unittest框架

在我们真正的编写测试用例之前,我们需要了解一下测试框架。 unittest是python自带的单元测试框架,尽管其主要是为单元测试服务的,但我们也可以用它来做接口的自动化测试。 unittest框架为我们编写用例提供了如下的能力 定义用例的能力。unittest框架有一套固有套路,可以让我们定义测试用例时更加简单和统一 断言的能力。unittest框架提供了 …

1 分钟阅读

7.requests库

requests库可以极大的简化我们发送http请求及获取响应的代码,简洁而优雅。 上面的例子相信大家很容易看明白,在我们做接口自动化测试的时候,我们往往使用requests的提供的接口发送请求和获取响应,并根据响应类型将响应转换成python自建的数据结构。比如上面的例子里,我们将响应的json字符串转换成了python的dict。 官方文档 中文文档 官 …

1 分钟阅读

8.第一个用例

前面铺垫了很多的基础知识,掌握基础知识是做基于http接口自动化测试的前提,不建议直接跳过。 学习本节需要有一些前提条件 安装了postman 安装了python 安装了requests 在认识测试对象这一节里有过描述。 测试数据: 节点的名称:python 接口地址: https://www.v2ex.com/api/nodes/show.json 断言: …

1 分钟阅读

9.什么是mock server

前端客户端团队和后端服务端团队往往节奏是不一致的。前端很多情况下需要等待后台的api开发完成后才能进行开发联调和测试,这种前后端不对称就造成了前后端团队节奏不一致,从而造成整个项目/产品交付/发布延期。 有一种解决方案的思路是前后端先约定好后端提供的api接口的细节,前端人员自行先模拟出这些后端的实现,当然这些实现是假的,不过前端可以去调用这些假的实现,而且 …

1 分钟阅读

10.使用flask实现mock server

flask是python实现的简单的web框架,与django互补。 官方文档 flask大型项目教程 路由 -> /request/uri handler -> 路由进来之后处理request并返回response的逻辑 获取所有的任务 查看一个任务的详情 完成一个任务 浏览器打开localhost:5000就好了

1 分钟阅读