接口自动化测试yaml+requests+allure技术,你学会了吗?

news2024/12/23 9:03:37

 目录

前言

一、什么是接口自动化测试

二、为什么要进行接口自动化测试

三、接口自动化测试的流程

四、yaml语言介绍

五、requests库介绍

六、allure技术介绍

七、总结


前言

接口自动化测试是在软件开发过程中常用的一种测试方式,通过对接口进行自动化测试,可以提高测试效率、降低测试成本。在接口自动化测试中,yaml、requests和allure三种技术经常被使用。

一、什么是接口自动化测试

接口自动化测试是指通过编写自动化脚本来模拟用户请求系统接口,并对返回结果进行验证和比对的过程。它可以帮助测试人员快速检查接口是否正常工作,并及时发现和修复潜在问题。

                         接口自动化测试视频教程:

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0                         

二、为什么要进行接口自动化测试

  1. 提高测试效率:与手动测试相比,接口自动化测试可以更快地执行测试,从而加快测试速度。

  2. 降低测试成本:自动化测试可以大大减少测试人员的工作量,并减少测试需要的时间与资源。

  3. 更好的测试覆盖率:通过自动化测试,可以对每一个接口进行全面测试,在保证测试质量的同时,提高了测试覆盖率。

  4. 方便持续集成:接口自动化测试可以方便地与持续集成工具(如Jenkins等)结合,实现自动化构建和测试。

三、接口自动化测试的流程

接口自动化测试的主要流程包括:

  1. 定义测试用例和测试数据:根据接口文档和需求规格书,定义需要进行测试的接口以及对应的测试用例和测试数据。

  2. 编写自动化脚本:使用yaml语言编写自动化脚本,模拟用户发送请求并对返回结果进行验证和比对。

  3. 执行测试:执行自动化脚本,验证接口是否正常工作,并记录测试结果。

  4. 生成报告:使用allure技术生成测试报告,帮助测试人员更好地理解测试结果和找到问题。

四、yaml语言介绍

YAML是一种轻量级的数据序列化格式,它可以用来表示复杂数据结构,如列表、字典等。在接口自动化测试中,我们可以使用YAML来定义测试用例和测试数据。

以下是一个简单的YAML文件示例:

- name: get user info
  url: /api/user/info
  method: GET
  headers:
    Content-Type: application/json
    Authorization: Bearer {token}
  params:
    id: 123
  expected:
    status_code: 200
    body:
      id: 123
      name: John Doe
      email: john.doe@example.com

在这个例子中,我们通过YAML定义了一个名为“get user info”的测试用例,该用例向服务器发出GET请求,获取id为123的用户信息,并验证返回的状态码为200,返回的响应体中包含id、name和email三个字段。

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0             

五、requests库介绍

Requests是一个Python第三方库,用于发送HTTP请求。在接口自动化测试中,我们可以使用Requests库来模拟用户向服务器发送请求,并获取返回结果。

以下是一个简单的Requests代码示例:

import requests

url = 'http://localhost:8080/api/user/info'
headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer {token}'}
params = {'id': 123}

response = requests.get(url, headers=headers, params=params)

assert response.status_code == 200
assert response.json()['id'] == 123
assert response.json()['name'] == 'John Doe'
assert response.json()['email'] == 'john.doe@example.com'

在这个例子中,我们使用Requests库发送了一个GET请求,获取id为123的用户信息,并对返回结果进行验证和比对。

六、allure技术介绍

Allure是一款开源测试报告框架,它可以帮助

测试人员更好地记录和展示测试结果,包括测试用例的执行情况、错误信息、截图等。在接口自动化测试中,我们可以使用Allure来生成漂亮、易读的测试报告。

以下是一个简单的Allure代码示例:

import allure
import requests

@allure.feature('用户管理')
def test_get_user_info():
    url = 'http://localhost:8080/api/user/info'
    headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer {token}'}
    params = {'id': 123}

    with allure.step('发送请求'):
        response = requests.get(url, headers=headers, params=params)

    with allure.step('验证返回结果'):
        assert response.status_code == 200
        assert response.json()['id'] == 123
        assert response.json()['name'] == 'John Doe'
        assert response.json()['email'] == 'john.doe@example.com'

    allure.attach(requests.request.method, "请求方法")
    allure.attach(requests.request.url, "请求URL")
    allure.attach(str(requests.request.headers), "请求Headers")
    allure.attach(str(requests.request.body), "请求Body")
    allure.attach(str(response.status_code), "响应状态码")
    allure.attach(str(response.headers), "响应Headers")
    allure.attach(str(response.json()), "响应Body")

在这个例子中,我们使用Allure装饰器来标记测试用例的属性,如feature(测试用例所属模块)、step(测试用例步骤)、attach(附加信息),然后通过Allure的API将相关信息以HTML格式输出到测试报告中。

七、总结

接口自动化测试是一种重要的测试方式,可以提高测试效率、降低测试成本。在接口自动化测试中,yaml、requests和allure三种技术经常被使用。具体而言,我们可以通过YAML来定义测试用例和测试数据,使用Requests库来模拟用户向服务器发送请求,并获取返回结果,最后使用Allure技术生成漂亮、易读的测试报告。

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

 

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

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

相关文章

SQL Sever 单表数据查询(下)

提示:本篇文章是在上篇文章的基础上进行单表数据查询操作的补充,主要以例题的方式呈现. 文章目录前言1.分组:统计各门课程的选修人数2.分别统计男女生的平均年龄3.查询所有科目成绩在85分以上的学生的学号及其平均分4.查询平均年龄大于18岁的系部和平均年…

Linux复习 / 动静态库QA梳理 | 如何使用第三方库?

文章目录前言Q&A概念Q:使用静态库和使用动态库的程序有什么区别?Q:什么是静态链接/动态链接?使用与制作Q:如何制作动静态库?Q:如何使用第三方库?Q:程序加载时&#x…

C语言-实现顺序二叉树和平衡二叉树AVL

1. 结构体 在实现二叉树之前先看下结构体的一些使用方法 数组是保存一系列相同的数据。在实际问题中,一组数据往往有很多种不同的数据类型。例如,登记学生的信息,可能需要用到 char型的姓名,int型或 char型的学号,in…

4.6--计算机网络之TCP篇之TCP的基本认识--(复习+深入)---好好沉淀,加油呀

1.TCP 头格式有哪些? 序列号: 在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接收端主机,每发送一次数据,就「累加」一次该「数据字节数」的大小。 用来解决网络包乱序问题。 确认应答号: …

MySQL优化——Explain分析执行计划详解

文章目录前言一. 查看SQL执行频率二. 定位低效率执行SQL三. explain分析执行计划3.1 id3.2 select_type3.3 table3.4 type3.5 key3.6 rows3.7 extra四. show profile分析SQL前言 在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能…

酷炫的3D智慧工厂不会打造?这40+可视化大屏模板千万别错过!

数字化已成为各行各业的重要趋势,因为数字化能够带来精准的效益提升。小米公司最近推进了黑灯工厂业务。”24小时熄灯操作,全程无人工干预”,这是小米智能工厂的重要特征。走进工厂,闪烁的灯带提示生产正在进行,机器通…

【Spring从成神到升仙系列 四】从源码分析 Spring 事务的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

【ChatGPT】Prompt Engineering入门

Prompt Engineering入门一、什么是 Prompt Engineering?二、我们还需要学习 PE 吗?三、Prompt基础原则一、什么是 Prompt Engineering? 简单的理解它是给 AI 模型的指令。它可以是一个问题、一段文字描述,甚至可以是带有一堆参数的…

数据结构 - 排序 | C (插入、希尔、选择、堆、冒泡)

目录0.排序思维导图(总)一、插入排序1.直接插入排序思路分析代码实现时间复杂度2.希尔排序思路分析代码实现时间复杂度二、选择排序1.选择排序思路分析代码实现时间复杂度2.堆排序思路分析代码实现时间复杂度三、交换排序冒泡排序思路分析代码实现时间复…

如何基于vue实现倒计时效果

如何基于vue实现倒计时效果基于vue2 element实现画面效果代码基于vue2 element 实现画面效果 代码 <template><div><div class"Box"><div style"position: relative;"><el-progress type"circle" :width"30…

pytorch注意力机制

pytorch注意力机制 最近看了一篇大佬的注意力机制的文章然后自己花了一上午的时间把按照大佬的图把大佬提到的注意力机制都复现了一遍&#xff0c;大佬有一些写的复杂的网络我按照自己的理解写了几个简单的版本接下来就放出我写的代码。顺便从大佬手里盗走一些图片&#xff0c…

Vue3使用触摸滑动插件(Swiper)

Vue2使用触摸滑动插件&#xff08;Swiper&#xff09; 参考文档&#xff1a; Swiper官方 Swiper Vue Swiper Demos 本文使用的是最新版本&#xff1a;Swiper9.2.2 安装插件&#xff1a;yarn add swiper 本文基于Swiper插件进行封装&#xff0c;主要实现两种形式的轮播图展示…

电脑自带远程桌面和远程控制软件哪个好?

随着科技的不断发展和普及&#xff0c;越来越多的公司和个人开始关注远程控制软件的使用。我们常常需要在不同的地方工作&#xff0c;但工作需要的文件和软件却只能在一个地方使用&#xff0c;这时候远程控制电脑软件就变得尤为重要咯。但是&#xff0c;许多人分不清楚&#xf…

Windows远程连接工具有哪些

Windows远程连接工具&#xff0c;一般称为远程桌面软件&#xff0c;更准确的叫远程访问软件或远程控制软件&#xff0c;可以让你从一台电脑远程控制另一台电脑。远程桌面软件允许您控制连接的计算机&#xff0c;就好像它就在您面前一样。 远程桌面工具可用于技术支持、远程工作…

单TYPE-C口 可支持快充又可传输USB2.0数据方案

虽然现在有不少厂商也采用了Type-C接口&#xff0c;但是只作为一个充电接口&#xff0c;对于跨时代的type-c接口来说&#xff0c;多少有点大材小用&#xff0c; 那么有没有办法&#xff0c;让一个type-c接口既可以充电&#xff0c;又可以接OTG&#xff1f;比如不充电的时候可以…

Python一行命令搭建HTTP服务器并外网访问 - 内网穿透

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

第二章:HTML CSS 网页开发基础(二)

CSS概述 CSS全称&#xff1a;Cascading Style Sheet&#xff0c;可以对文字进行重叠&#xff0c;定位。主要实现页面美化。 一、CSS规则 CSS样式表中包括了3部分&#xff1a;选择符、属性、属性值 选择符{属性:属性值;} 选择符&#xff1a;也可以称为选择器&#xff0c;所有…

Java实现输入行数打印取缔字符,打印金字塔三角形的两个代码程序

目录 前言 一、实现输入行数&#xff0c;打印取缔字符 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图 二、打印金字塔三角形 1.1运行流程&#xff08;思想&#xff09; 1.2代码段 1.3运行截图​​​​​​​ 前言 1.因多重原因&#xff0c;本博文有…

【BlazePose】《BlazePose: On-device Real-time Body Pose tracking》

arXiv-2020 文章目录1 Background and Motivation2 Advantages / Contributions3 Method4 Experiments5 Conclusion&#xff08;own&#xff09;1 Background and Motivation 人体关键点存在的难点&#xff1a;a wide variety of poses, numerous degrees of freedom, and occ…

JavaWeb—Maven

目录 1.什么是Maven 2.Maven的作用 3.Maven概述 3.1Maven介绍 3.2 Maven模型 3.3 Maven仓库 1.什么是Maven Maven是Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 官网&#xff1a;Maven – Welcome to Apache Mavenhttps://maven.apache.o…