python接口自动化pytest+request+allure

自己自学接口自动化过程遇到的问题及解决方法记录

首先是一个简单的请求

import requests#这是一个简单是get请求
def test_get():geturl = 'https://so.csdn.net/api/v1/relevant-search?query=pycharm%E5%AE%89%E8%A3%85requests%E5%BA%93&platform=pc'getr = requests.get(url=geturl)print(getr.text)assert getr.status_code == 200#这是一个post请求
def test_post():posturl = 'https://so.csdn.net/api/v1/get_landing_word'postjson={'url':'https://blog.csdn.net/qq_43779149/article/details/122488766'}postr=requests.post(url=posturl,json=postjson)print(postr.text)list_postr = list(postr)# assert list_postr[1] == 200assert postr.status_code == 200

利用request库发送请求

然后用pytest的命名规范写了上述代码,后面我需要用allure生成报告

问题一:allure是什么

        allure是第三方的命令行工具,无法直接通过python来安装,需要去官网下载

问题二:allure-pytest是什么

        allure-pytest是Python 插件,用于生成测试数据,可以直接用pip来安装

遇到的问题:

       一:官网下载的allure没用bin目录,无法用命令行去执行,最后还是在csdn上的某个博客上找到了个人分享的allure压缩包

分享者是:@旺仔牛奶

分享链接是:pycharm中Allure的安装及其环境配置_pycharm安装allure-CSDN博客

        链接:https://pan.baidu.com/s/1tMWm5p4sYXgcj5AP4GeRbg?pwd=284i 
        提取码:284i 

下载好allure后,需要找到bin目录,并将其配置环境变量

        点击电脑,选择属性—>高级系统设置—>环境变量设置—>系统变量—>Path环境,然后

        选中Path点击编辑,然后选择新建,然后将复制的Allure的bin目录的路径粘贴即可,然后点击确定

上述两个下载好之后进行验证

验证命令:pip show allure-pytest

验证命令:allure --version

之后重启PyCharm即可使用allure

之后使用代码 

    # 运行要进行测试的py文件,生成测试数据到当前目录下的allure-results文件夹pytest.main(["-s", "alluredpytest.py", "--alluredir=allure-results"])# 执行allure服务,将allure-results文件夹的测试数据转html,并自动打开网页subprocess.run("allure serve allure-results", shell=True)# 服务处于开启状态,关闭服务则链接失效,不可查看报告

allure装饰器的应用 

@allure.feature("CSDN接口测试")  # 模块/功能分类
class TestCSDNAPI: # 测试类@allure.story("GET接口测试")  # 子功能/用户场景分类@allure.title("搜索相关文章接口")  # 用例标题(默认是函数名,可自定义)@allure.description("验证GET请求返回状态码200")  # 用例描述

 将上面的请求加上装饰器的完整代码如下

import allure
import requests@allure.feature("CSDN接口测试")  # 模块/功能分类
class TestCSDNAPI:@allure.story("GET接口测试")  # 子功能/用户场景分类@allure.title("搜索相关文章接口")  # 用例标题(默认是函数名,可自定义)@allure.description("验证GET请求返回状态码200")  # 用例描述def test_get(self):with allure.step("步骤1:发送GET请求"):  # 记录详细步骤geturl = 'https://so.csdn.net/api/v1/relevant-search?query=pycharm%E5%AE%89%E8%A3%85requests%E5%BA%93&platform=pc'getr = requests.get(url=geturl)allure.attach(f"请求URL: {geturl}", "请求详情")  # 附加请求信息到报告allure.attach(f"响应状态码: {getr.status_code}", "响应详情")with allure.step("步骤2:验证状态码"):print(getr.text)assert getr.status_code == 200, "状态码非200"  # 断言失败时显示自定义错误信息@allure.story("POST接口测试")@allure.title("获取落地页关键词接口")def test_post(self):posturl = 'https://so.csdn.net/api/v1/get_landing_word'postjson = {'url': 'https://blog.csdn.net/qq_43779149/article/details/122488766'}with allure.step("发送POST请求"):postr = requests.post(url=posturl, json=postjson)# 将请求和响应数据附加到Allure报告allure.attach(str(postjson), "请求Body", allure.attachment_type.JSON)allure.attach(postr.text, "响应Body", allure.attachment_type.JSON)with allure.step("验证状态码"):# 移除有问题的 list_postr = list(postr)(Response对象不能直接转为list)assert postr.status_code == 200, f"状态码错误,实际为{postr.status_code}"

运行allure服务,并且自动打开测试报告页面,查看详细报告

 

 

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

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

相关文章

CompletableFuture的使用

CompletableFuture 是 Java 8 引入的异步编程工具&#xff0c;通过链式调用和非阻塞操作简化多线程任务编排。 创建异步任务 1.带返回值的任务 CompletableFuture<String> future CompletableFuture.supplyAsync(() -> "Hello");2. ​无返回值的任务 使…

GLB文件介绍

GLB文件是由支持glTF&#xff08;GL Transmission Format&#xff09;标准的软件或工具生成的。glTF是一种开放的3D模型传输格式&#xff0c;而GLB是其二进制版本&#xff0c;通常用于嵌入纹理和模型数据。以下是常见的生成GLB文件的软件和工具&#xff1a; 1. 3D建模软件 • …

计算机网络的分类及其性能指标

一. 计算机网络的分类 1. 按分布范围分类 广域网&#xff08;WAN&#xff09; 也称远程网。广域网提供长距离通信&#xff0c;通常是几十千米到几千千米的区域&#xff0c;比如跨国通信。连接广域网的各结点交换机的链路一般是高速链路&#xff0c;具有较大的通信容量城域网&…

gralloc usage flags

下面这些示例主要说明了 gralloc usage flags 在图像处理和多媒体应用中如何影响性能和正确性。让我们逐个详细分析每个问题的 根因 和 修复方案&#xff0c;并深入解析 gralloc 标志对 缓存管理 和 数据流 的影响。 ✅ Example 1: 长曝光快照耗时异常 &#x1f4cc; 问题描述…

关于kafka的一些知识总结

Kafka 1. 基本知识 1.1 前置知识 topic表示一个类型/业务的数据的组为方便扩展&#xff0c;提高吞吐率&#xff0c;一个topic分为多个partition。配合分区的设计&#xff0c;提出消费者组的概念&#xff0c;每个消费者并行消费&#xff0c;同时&#xff0c;一个分区的数据&a…

深入理解traceroute命令及其原理

traceroute 是一个网络诊断工具&#xff08;Windows上叫tracert&#xff09;&#xff0c;用于显示数据包从本地主机到远程主机经过的路由&#xff08;跳数&#xff09;。它可以帮助您了解数据包在网络中的传输路径&#xff0c;以及每跳的延迟情况。这对于网络故障排除、分析网络…

Spring 6: 3容器-Ioc

3、容器&#xff1a;IoC IoC 是 Inversion of Control 的简写&#xff0c;译为“控制反转”&#xff0c;它不是一门技术&#xff0c;而是一种设计思想&#xff0c;是一个重要的面向对象编程法则&#xff0c;能够指导我们如何设计出松耦合、更优良的程序。 Spring 通过 IoC 容…

git推送代码相关学习——(一)

推荐去阅读一下廖老师的git相关的教程https://liaoxuefeng.com/books/git/introduction/index.html 这个系列就来学习一下git操作。 第一步&#xff0c;新建项目 去github中新建一个项目&#xff0c;然后依据项目来进行本地的开发工作。 第二步&#xff0c;拉取项目 git c…

2025年渗透测试面试题总结-某深信服-深蓝攻防实验室(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 深信服-深蓝攻防实验室 一、内网攻击核心思路&#xff08;2025版&#xff09; 1. 攻击阶段分层 2. 最…

JAVA学习*Object类

Object类 Object类是所有类的父类 类中有一些方法&#xff08;都需要掌握&#xff09; toString()方法 在学习类的对象的时候有介绍过了&#xff0c;当我们重新给此方法就会打印类与对象的信息 equals()方法 在Java中的比较&#xff0c; 如果左右两侧是基本类型变量&#…

《Operating System Concepts》阅读笔记:p471-p472

《Operating System Concepts》学习第 37 天&#xff0c;p471-p472 总结&#xff0c;总计 2 页。 一、技术总结 1.NAS (1)定义 network-attached storage (NAS)&#xff1a;Storage accessed from a computer over a network. 虽然平时经常看到 NAS 这个名称&#xff0c;之…

gonet开源游戏服务器环境配置

1.mysql搭建 搜索mysql-server apt安装包名 sudo apt search mysql-server 安装mysql-server sudo apt-get install mysql-server 安装完成后会&#xff0c;启动mysql服务及创建系统服务 查看服务状态 systemctl status mysql.service 使用超级权限登陆mysql sudo mysql 授…

HarmonyOS NEXT(九) :图形渲染体系

HarmonyOS NEXT&#xff08;九&#xff09; &#xff1a;图形渲染体系 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 HarmonyOS NEXT&#xff0…

网络安全威胁与防护措施(上)

1. SQL注入&#xff08;SQL Injection&#xff09; SQL注入是一种常见的安全漏洞&#xff0c;攻击者通过在用户输入中插入恶意的SQL代码&#xff0c;从而篡改、操控数据库&#xff0c;执行未授权的数据库操作&#xff0c;如查询、修改、删除数据&#xff0c;甚至获取系统控制权…

3.22模拟面试

前端模拟面试&#xff08;1 年经验&#xff09; 面试时长&#xff1a;40-60 分钟 面试难度&#xff1a;初中级 技术栈&#xff1a;Vue 3、TypeScript、微前端&#xff08;qiankun&#xff09;、Webpack/Rspack、Ant Design、组件库迁移 一、基础知识 HTML & CSS 介绍一下…

kotlin 函数引用

引言 先确认一下&#xff0c;什么叫做引用 Object obj new Object() //这里的obj就是一个强引用 再确认一个结论&#xff1a; lambda 属于函数类型对象 。 fun methodResponseResult(msg: String , respo:(Int, String)->Unit){}fun methodRespoResunt(type: Int ,msg: S…

微前端qiankun框架的使用

文章描述 随着工作时间的增加&#xff0c;发现公司的项目逐渐多了起来&#xff0c;有一个项目比较庞大&#xff0c;是需要集成多个子系统而形成的大项目。其中便是使用微前端的概念qiankun框架来集成其他多个子项目的。接下来&#xff0c;一起来看一下qiankun框架的具体使用方…

基于CVX优化器的储能电池调峰调频算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 原理概述 4.2 CVX工具箱概述 5.完整工程文件 1.课题概述 基于CVX优化器的储能电池调峰调频算法matlab仿真。CVX 是一种用于求解凸优化问题的强大工具。凸优化问题具有良好的数学性质&#xff0c;能…

回归——数学公式推导全过程

文章目录 一、案例引入 二、如何求出正确参数 1. 最速下降法 1&#xff09;多项式回归 2&#xff09;多重回归 2. 随机梯度下降法 一、案例引入 以Web广告和点击量的关系为例来学习回归&#xff0c;假设投入的广告费和点击量呈现下图对应关系。 思考&#xff1a;如果花了…

微服务中的服务发现

微服务中的服务发现 什么是服务发现 服务发现是微服务架构中的关键机制&#xff0c;用于确定各个微服务的地址。例如&#xff0c;在一个 API Server 服务中&#xff0c;我们可能需要调用 User 服务来处理用户注册、登录和信息查询&#xff0c;也可能需要 Product 服务来获取商…