软件测试Day6|接口测试

news2025/1/19 7:15:29
  • 学习流程
    在这里插入图片描述
  • 接口测试流程
    需求分析和评审–接口文档分析–编写测试用例–测试用例设计及评审–测试脚本构建–执行测试用例–缺陷管理和回归–测试报告和总结
  • 计网基础(URL、请求、响应)

接口文档解析

  • 拿到一个项目接口之后,先测试业务接口还是测试单个接口?(业务接口)
  • 如何测试业务接口(根据业务流程图梳理业务路径,设计测试用例覆盖每一条业务路径)
  • 如何进行接口文档解析(①分析接口之间的依赖关系②分析接口请求(URL、请求方法、请求头、请求参数类型、请求参数等)③分析接口响应(响应状态码、响应数据等))

postman

  • 设置请求方法==》设置URL,请求体,请求数据==》Send发送请求==》查看响应状态码、数据

  • 接口自动关联(两个接口之间需要传递数据 验证码接口==》公共容器保存数据==》登陆接口)

    1)postman添加环境,postman项目中添加环境

    2)验证码接口,获取验证码,在Tests中写脚本,保存验证码到环境变量

    var jsonData = pm.response.json() 获取验证码接口的json数据
    pm.environment.aet("uuid",jsonData.uuid) 设置环境变量保存数据
    

    3)登录接口引用环境变量数据,请求头和请求体都可引用环境变量数据,{{var_name}}

    // 请求体json数据中引用变量
    "uuid" :{{uuid}}
  • 上传文件 请求体里面 选择form-data

  • get提交查询参数①url中?参数1and参数2②在Params区域里设置

  • 批量执行:点击测试集Run–弹出cellection Runner窗口,点击运行–查看测试接口

  • 单接口测试

    等价类、边界值 | p优先级

    正向测试逆向测试
    必填参数 P2参数数据为空 P3
    全部参数 P2参数类型不符 P3
    参数长度不符 P3
    业务规则不符 P3
  • potman断言:自动判定是否与预期结果符合(有模板)
    Tests区域编写断言

    // 判断响应状态
    pm.test("assert name"function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数
     pm.respeonse.to.have(200) //判断是否包含指定的状态码
    });
    
    // 包含指定字符串
    pm.test("body matches string"function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数
     pm.except(pm.response.text()).to.include("string_we_want_to_search") //判断是否包含指定的字符串
    });
    

    在这里插入图片描述

    // json数据断言
    pm.test("body matches string"function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数
     var jsonData = pm.response.json();
     pm.except(jsonData.uuid).to.eql(100) //判断json数据中的uuid值是否等于100
    });
    
  • postman参数化–批量化运行
    将测试用例和断言需要的内容用列表保存为json格式

    [
    {"username":"manager","password":123456,"status":200,"message":"成功"}{"username":"","password":123456,"status":200,"message":"成功"}
    ]
    

    – 请求体中引用数据 {{username}}
    – 断言中引用数据 data.status data指代上传的测试用例json文件,名字不能改

requests、pytest自动化接口测试

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

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

相关文章

【C++入门】命名空间、缺省参数、函数重载、引用、内联函数

​👻内容专栏: C/C编程 🐨本文概括: C入门学习必备语法 🐼本文作者: 阿四啊 🐸发布时间:2023.9.3 前言 C是在C的基础之上,容纳进去了面向对象编程思想,并增加…

OJ练习第160题——LRU 缓存

LRU 缓存 力扣链接:146. LRU 缓存 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓…

滴滴前端一面面经(已挂)

面试过程 前段时间面试了滴滴的前端实习岗位,大厂的面试机会很难得,复习了很多前端知识。 拿到面试机会,是在地铁上投递了boss,当时hr看了我的简历就和我约了第二天的面试。电脑也没带,晚上就用手机复习了前端的一些…

数据资产的一二三

数字经济时代的发展极大地改变了社会经济发展格局,随着云计算、物联网和AI等技术不断革新,基于数字平台的新产业和新的商业模式陆续涌现在大众面前,影响着人类社会生产和生活的模式。在这个时代的影响下,数据的重要性不言而喻&…

MySQL的内置函数复合查询内外连接

文章目录 内置函数时间函数字符串函数数学函数其他函数 复合查询多表笛卡尔积自连接在where中使用子查询多列子查询在from中使用子查询 内连接外连接左外连接右外连接 内置函数 时间函数 函数描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳…

基于RabbitMQ的模拟消息队列之六——网络通信设计

自定义基于TCP的应用层通信协议。实现客户端对服务器的远程调用 编写服务器及客户端代码 文章目录 基于TCP的自定义应用层协议一、请求1.请求格式2.创建Request类 二、响应1.响应格式2.创建Response类 三、客户端-服务器交互四、type五、请求payload1.BasicAruguments(方法公共…

一个集成的BurpSuite漏洞探测插件1.1

免责声明 本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0c…

Spring的重试机制-SpringRetry

在我们的日常开发中,经查会遇到调用接口失败的情况,这时候就需要通过一些方法来进行重试,比如通过while循环手动重复调用或,或者通过记录错误接口url和参数到数据库,然后手动调用接口,或者通过JDK/CGLib动态…

MySQL数据库之高级语句、视图、存储过程

目录 一、常用查询 1、对查询的结果进行排序 (1)查询信息,并排序(升序/降序) (2)查询表中信息并按照升序排序显示; (3)查询表中数据并按照降序顺序显示; 2、查询数…

程序员必备技能之调试

目录 前言 本期内容介绍 一、什么是Bug? 二、调试以及调试的重要性 2.1什么是调试? 2.2调试的基本步骤 ​三、Debug和Release介绍 Debug和Release 四、windows环境下的调试介绍 4.1调试环境 4.2一些调试常用的快捷键 4.3调试时查看当前程序的…

FLBOOK一个制作电子期刊的必备工具

在日常工作中,肯定有不少的人找不到合适的制作电子期刊工具吧!大家可以试试FLBOOK简单又实用 为什么推荐FLBOOK? 1.直观易用的界面 用户可以通过拖拽、插入图片、添加文字等方式来设计期刊的布局 2.多种模板和主题 用户可以根据自己的需求…

ImageSharp.Web实战:轻松搭建高效图片服务

很多情况下,在开发如PC、H5、小程序等综合平台的时候,图片的展示是个比较头疼的问题。尤其是有会员功能,会员可以上传图片的平台,更是一件麻烦事。 平台展示图片的地方,尺寸是定义好的。但用户不配合,上传的…

载入qss时出现Could not parse application stylesheet

我这里其实qss文件本身没有错误。 参考:解决Qt Creator修改qss文件后导致样式无效问题_qt qss改变但运行结果没变_风吹沙走的博客-CSDN博客 我的解决方法: (1)UTF-8 BOM:总是删除 (2) 文本重新编码为ANSI 这时候中文会变成乱码。 (3)我事先复制了一…

Java 线程池概念总结(thread pool)

一、池化思想的应用 池化思想是一种常见软件设计和优化技术。以下是几个常见池化思想应用场景: 线程池:线程池是池化思想一个典型应用。通过预先创建一组线程并将它们置于就绪状态,以复用线程减少线程创建和销毁的开销,并提高系统…

PY32F003F18按键输入

一、PY32F003F18的GPIO介绍 1、PY32F003F18的18个I/O,均可作为外部中断; 2、每个GPIO都可以由软件配置为输出: 1)、推挽输出(push-pull) 2)、开漏极输出(open drain) 注意:驱动电流为8mA; 3、每个GPIO都可以由软件配置为输入: 1)、…

视频图像处理算法opencv在esp32及esp32s3上面的移植,也可以移植openmv

opencv在esp32及esp32s3上面的移植 Opencv简介 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,它轻量级而且高效——由一系列 C 函数和少量…

02-请解释一下Java的内存模型和happens-before规则?【Java面试题总结】

请解释一下Java的内存模型和happens-before规则? 概念:Java内存模型,简称JMM,是一种定义了多线程程序中内存访问行为的规范。它定义了线程如何与主内存和工作内存进行交互,以及如何保证多线程程序的正确性和可见性。J…

聚鑫数藏平台——引领数字资产管理新风向

随着数字经济的飞速发展,新金融生态应运而生。区块链技术的崭新突破,使数字资产的重要性日益凸显,为投资者带来了前所未有的机遇和挑战。在此背景下,聚鑫数藏平台横空出世,引领着数字资产管理的新风向。 聚鑫数藏平台&…

2023数学建模国赛四天速成计划来啦!(内含大量资料)

大家好呀。高教社杯全国大学生数学建模竞赛(下称国赛)9.7日下午6点就正式开始了: 在这里给大家带来一个五天的速成计划啦!大家可以收藏本文章或者转发到你们队友群哈,此外我还会发放很多资料给大家,注意&am…

数据结构|栈和队列以及实现

栈和队列 一、栈1.1栈的概念及结构1.2栈的实现 二、队列2.1队列的概念及结构2.2队列的实现 一、栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和数据删除的一端称为栈顶,另一端称为栈…