自动化接口测试:Pytest让你轻松搞定!了解一般流程及方法

首先我们要明确,通常所接口测试其实就属于功能测试,主要校验接口是否实现预定的功能,虽然有些情况下可能还需要对接口进行性能测试、安全性测试。

在学习接口自动化测试之前,我们先来了解手工接口测试怎样进行。

URL组成

为了更好的理解接口测试,我们需要对接口的URL有所了解,下面以GET请求URL为例,组成示例如下:

通过上图可以看出来,一个典型的GET请求的URL可以分为以下几个部分:

  • 传输协议:工作中接触到的接口一般是http/https协议

  • 服务器域名/IP地址:指提供接口的系统所部署的服务器地址

  • 端口:不填则默认端口为80

  • 资源路径:请求资源所在的服务器路径

  • 请求参数:对于GET请求,参数在资源路径后,用?分隔,参数之间用&分隔。

    http://127.0.0.1:8080/message?wd=pytest&ie=utf-8,有2个参数 wd、ie。

POST请求的URL与GET请求URL不一样的地方在于,POST请求参数是放在请求body里而非直接放在URL里。

接口测试流程

手工接口测试的流程如下:

  1. 查看需求文档及接口文档,明确测试内容即接口信息。

  2. 根据需求文档及接口文档,编写测试用例。

  3. 根据测试用例执行测试。

  4. 记录测试结果,发送接口测试报告(如果需要)。

接下来以一个登录接口为例来讲解接口测试的流程。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn888】

接口文档

对接口进行测试,首先要明确接口的具体信息:请求url、请求方式、请求头、请求体 (字段及说明)、响应体 (字段及说明)。

通过开发提供的接口文档可以查看这些信息,然后再根据接口信息设计测试用例 (接口测试用例的设计主要参考接口文档)。下面示例为一个登录接口的接口文档:

从这个接口文档我们可以看到接口相关的具体信息,但这个文档里没有对请求头Header做说明,所以请求的时候对请求头也不做要求。

用例设计

用例设计方法

设计接口测试用例时,要从考虑输入、逻辑处理、输出三方面考虑:

  • 输入,根据是否必填、参数类型、字节长度、参数组合等设计用例
  • 逻辑处理,即按照业务逻辑设计用例
  • 输出,即根据输出结果分析并设计用例

除了正向校验功能是否实现外,还应根据业务场景及处理逻辑,考虑一些异常场景,如:

用例编写工具

用例设计的载体有很多种,如Excel,XMind,或一些测试管理平台如testlink等,符合自己习惯、方便管理、一目了然就行。

如果用Excel来设计测试用例,可以参考如下原则:

  • 一个模块对应一个Excel表

  • 一个接口对应一张sheet表

  • sheet表中一行对应一条测试用例

  • 注明前置条件、后置操作。如登录用例需要先注册用户,测试完成后可能需要删除这个用户,这个时候可以把对应操作写进去。

针对上面的登录接口,使用Excel设计测试用例如下:

测试执行

执行接口测试的方式有两种,使用工具或编写代码,工具如:postman、soupUI等,编写代码则一般使用Java、Python。

根据测试用例进行接口测试,手工接口测试一般情况下推荐使用postman进行,方便快捷。

这里以上面的登录接口为例,使用postman进行请求测试,示例如下:

测试结果

测试结果直接记录在测试用例对应的测试结果列里,如果需要提供测试报告的话则需将所有用例测试情况整合在测试报告中。

总结

一般的接口测试其实就属于功能测试,这里我们以手工接口测试为例进行了流程说明。接口自动化测试的步骤其实跟这个流程差不多,只是需要使用脚本代替接口调试工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

灰度发布专题---2、Dubbo灰度发布

通过上面描述,我们理解了什么是灰度发布,接下来我们基于Dubbo实现灰度发布。Dubbo的灰度发布常见的方式有版本控制灰度发布、路由灰度发布、基于Apollo实现灰度发布,我们把这每种灰度发布都实现一次。 在学习Dubbo灰度发布之前,我…

5款最常用的Android测试框架(含代码示例)

前言 今天,我们就要说说5款最常用的Android测试框架,并且每个框架都给出了基本的代码示例。 在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看…

csdn博客编写技巧

随便记录一下csdn博客编写时候用的到技巧,以作备忘。 1. 表格 1.1 Markdown-Table-Generator 这个是csdn编辑器中,工具栏自带的表格用法。主要优点是比较直观,缺点是无法设置表格中行列的宽高。 用法: | 表头一 | 表头二 | |-…

分享错误代码0x8007007b的解决办法,有效解决错误代码0x8007007b

错误代码0x8007007b是Windows操作系统中常见的错误代码之一。出现这样的错误代码0x8007007b通常与许可证问题相关,并表示Windows无法激活或验证已安装的操作系统副本,导致应用程序不能正常运行。下面是关于错误代码0x8007007b的解决办法希望能帮助大家解…

Vue3-Pinia

Pinia是什么 Pinia是Vue的最新状态管理工具,是Vuex的替代品 比Vuex更大的优势在于: 1.提供更加简单的API(去掉了mutation) 2.提供符合,组合式风格的API(和Vue3新语法统一) 3.去掉了modules…

微信小程序nodejs+vue+uniapp视力保养眼镜店连锁预约系统

作为一个视力保养连锁预约的网络系统,数据流量是非常大的,所以系统的设计必须满足使用方便,操作灵活的要求。所以在设计视力保养连锁预约系统应达到以下目标: (1)界面要美观友好,检索要快捷简易…

GAN:ImprovedGAN-训练GAN的改进策略

论文:https://arxiv.org/abs/1606.03498 代码:https://github.com/openai/improved_gan 发表:NIPS 2016 一、文章创新 1:Feature matching:特征匹配通过为生成器指定新目标来解决GANs的不稳定性,从而防止…

亚马逊低价产品广告怎么打?亚马逊造成成本高的原因——站斧浏览器

亚马逊低价产品广告怎么打? 设置合适的出价:在低价自动广告中,设置适当的出价是关键。过高的出价可能导致广告成本过高,而过低的出价可能使广告曝光度不足。可以根据产品的竞争情况和预算来调整出价,找到一个平衡点。…

Mysql更新varchar存储的Josn数据

Mysql更新varchar存储的Josn数据 记录一次mysql操作varchar格式存储的json字符串数据 1、检查版本 -- 版本5.7以上才可以能执行json操作 select version(); 2、创建测试数据 -- 创建测试表及测试数据 CREATE TABLE test_json_table AS SELECT UUID(), {"test1": …

详解HTTP协议(介绍--版本--工作过程--Fiddler 抓包显示--请求响应讲解)

目录 一.HTTP协议的介绍 1.1HTTP是什么? 1.2HTTP版本的演变 二.HTTP的工作过程 三.使用Fiddler抓包工具 3.1简单讲解Fiddler 3.2Fiddler工作的原理 3.3抓包结果分析 四.HTTP请求 4.1认识URL 4.2关于URL encode 4.3认识方法 4.3.1认识get和post 4.3.…

Docker 安装kafka 并创建topic 进行消息通信

Apache Kafka是一个分布式流处理平台,用于构建高性能、可扩展的实时数据流应用程序。本文将介绍如何使用Docker容器化技术来安装和配置Apache Kafka。 一、使用镜像安装 1、kafka安装必须先安装Zookpper 2、下载镜像 docker pull wurstmeister/kafka 3、查看下载…

揭秘!9个月完成亚运会的整体数字化观测

项目背景与业务场景 2023 第 19 届亚运会在杭州举办,这将提高杭州的国际知名度,促进杭州经济、社会的全面发展,并将进一步推动奥林匹克运动在中国的发展,并且提升杭州城市形象和国际影响力。为亚运村村民提供便捷周到的服务和丰富…

不确定度校准和可靠性图简介

图片来源 项杰 一、说明 不确定性校准是机器学习中最容易被误解的概念之一。它可以概括为这个简单的问题:“鉴于上述下雨的可能性,您是否带伞?” 我们在日常生活中使用主观概率和不确定性校准的概念,但没有意识到它们。对于不确定…

第四节HarmonyOS 熟知开发工具DevEco Studio

一、设置主体样式 默认的代码主题样式是黑暗系的,如下图所示: 如果你不喜欢,可以按照一下步骤进行修改: 左上角点击Flie->Settings->Appearance&Behavior->Appearance,点击Theme,在弹出的下拉…

XXDD——UUII(交互设计)

今天我们再次回到Adobe全家桶的怀抱,今天介绍的这一位成员,是最直接帮助大家进行平面交互式设计的软件。他就是XD~ Adobe XD全称Adobe Experience Design CC, 官方版跨平台支持Win10 与 macOS,并且所有用户均可免费下载使用。Adob…

Linux fork笔试练习题

1.打印结果&#xff1f; #include <stdio.h> #include <unistd.h> #include <stdlib.h>int main() {int i0;for(;i<2;i){fork();printf("A\n");}exit(0); } 结果打印 A A A A A A 2.将上面的打印的\n去掉,结果如何? printf("…

Java小游戏 王者荣耀

GameFrame类 所需图片&#xff1a; package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayLis…

Linux处理文本常见命令

目录 1 vim 2 echo 3 tee 4 cat 1 vim 编辑文本类的内容&#xff0c;使用的时候 vim [文件名]&#xff0c;比如 vim A.txt 进入vim界面后&#xff0c;按i可以开启编辑模式&#xff0c;按ESC可以关闭编辑模式&#xff0c;关闭编辑模式后:wq!保存并退出 2 echo ech…

【C语言加油站】函数栈帧的创建与销毁 #保姆级讲解

函数栈帧的创建与销毁 导言一、计算机硬件1.冯•诺依曼机基本思想2.冯•诺依曼机的特点&#xff1a;3.存储器3.1 分类3.2 内存的工作方式3.3 内存的组成 4.寄存器4.1 基本含义4.2 寄存器的功能4.3 工作原理4.4 分类4.4.1 通用寄存器组AX(AH、AL)&#xff1a;累加器BX(BH、BL)&a…

Git——Git应用入门

将会介绍以下知识&#xff1a; 搭建Git环境和创建Git版本库&#xff08;init、clone&#xff09;。文件添加、状态检查、创建注释和查看历史记录。与其他Git版本库交互&#xff08;pull、push&#xff09;。解决合并冲突。创建分支列表、列表切换和合并。创建标签。 1、版本控…