python request unittest beautifulreport 接口自动化测试框架

接着上次开发的python request pandas excel 接口自动化测试框架,上次遗留了两个功能需要添加:

1,测试报告的优化

2,参数化和关联的设置(如何在excel表里面设置参数化和关联)

这次先解决测试报告的优化  之前都是数据统计在excel里面,发现不方便做一个更加美观的测试报告,这次更改使用了unittest 框架,结合Python的requests库用于发送HTTP请求,unittest库用于编写测试用例和断言,以及beautifulreport库用于生成美观的测试报告。

下面是一个简单版本的自动化测试框架,可以在此基础之上进行多功能优化:

import unittest
import requests
from BeautifulReport import BeautifulReportclass APITestCase(unittest.TestCase):def setUp(self):"""设置测试前的准备工作"""passdef tearDown(self):"""清理测试后的工作"""passdef test_api_endpoint(self):"""测试API端点"""url = "your_api_endpoint_url"headers = {"Content-Type": "application/json"}payload = {"key": "value"}  # 可根据需要修改payloadresponse = requests.post(url, headers=headers, json=payload)# 断言状态码self.assertEqual(response.status_code, 200, "Expected status code 200, but got {}".format(response.status_code))# 断言响应内容self.assertEqual(response.json(), {"expected_response_key": "expected_response_value"}, "Response does not match expected")if __name__ == "__main__":suite = unittest.TestSuite()suite.addTest(APITestCase('test_api_endpoint'))runner = BeautifulReport(suite)runner.report(description='接口自动化测试报告', filename='api_test_report', report_dir='.')

在这个框架中,先定义了一个继承自unittest.TestCase的测试类APITestCase,并在其中编写了一个测试方法test_api_endpoint。在测试方法中,发送了一个POST请求到指定的API端点,并使用断言来验证返回的状态码和响应内容是否符合预期。

在主程序中,创建了一个测试套件并将测试用例添加到套件中。然后使用BeautifulReport来运行测试套件,并生成一个美观的测试报告。

注意请确保在运行脚本之前已经安装了BeautifulReport库,并根据实际情况修改测试用例中的URL、请求头和payload。如果感觉BeautifulReport库提供的测试报告页面不够美观,也可以自定义对BeautifulReport库进行二次开发。

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

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

相关文章

【学习总结】Python transformers AutoTokenizer encode 出现的 101 和 102

1. 代码展示: from transformers import AutoTokenizer, AutoModelmodel_name "bert-base-chinese"tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModel.from_pretrained(model_name)print(len(tokenizer.vocab.keys()))sequence …

linux: network: sysctl: netdev_budget_usecs的出现

这个参数就是为了在CPU于延迟直接做trade-off的一个参数,在Redhat的性能文档里有提,如果相应的计数有增加,就需要调整这个参数。 下面这个修改是,将原来的固定值改成了可修改的一个值。 commit 7acf8a1e8a28b3d7407a8d8061a7d0766cfac2f4 Author: Matthew Whitehead <…

安卓面试网络知识基础 1-5

1. 简述常见HTTP状态码分类?HTTP状态码概念 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 HTTP状态码的英文为HTTP Status …

九种背包问题(C++)

0-1背包&#xff0c;背包大小target&#xff0c;占用容积vec[i][0]&#xff0c;可以带来的利益是vec[i][1] 一件物品只能取一次,先遍历物品然后遍历背包更新不同容积下最大的利益 int func(vector<vector<int>>&vec,int target){vector<int>dp(target1,…

WXG 凉经(40m)

宝子们&#xff0c;卷起来&#xff1b; wxg 的部分面试题 两道算法&#xff0c; 合并两个有序数组&#xff0c;链表倒转 没问项目。 网络&#xff1a; 1. HTTPS了解吗&#xff0c;讲讲TSL 流程&#xff0c; 2. CA 签发流程 3. 浏览器缓存内CA 证书哪里来的 4. 最后通信…

【C语言】指针基础知识(一)

计算机上CPU&#xff08;中央处理器&#xff09;在处理数据的时候&#xff0c;需要的数据是在内存中读取的&#xff0c;处理后的数据也会放回内存中。 一,内存和地址 内存被分为一个个单元&#xff0c;一个内存单元的大小是一个字节。 内存单元的编号&#xff08;可以理解为门…

Spring Data访问Elasticsearch----Elasticsearch存储库Repositories

Spring Data访问Elasticsearch----Elasticsearch存储库Repositories 一、自动创建具有相应映射的索引二、存储库方法的注解2.1 Highlight2.2 SourceFilters 三、基于注解的配置四、Spring命名空间Namespace 一、自动创建具有相应映射的索引 二、存储库方法的注解 2.1 Highlig…

2024年值得创作者关注的十大AI动画创新平台

别提找大型工作室制作动画了。如今,AI平台让我们就可以轻松制作动画。从简单的文本生动画功能到复杂的角色动作,这些平台为各种类型的创作者提供了不同的功能。 AI已经有了长足的发展,现在它可以理解复杂的人类动作和艺术意图,将简单的输入转化成丰富而详细的动画。 下面…

国产数据库研究-2024

作为提升自我能力的一部分&#xff0c;计划在2024年4-9月份&#xff0c;逐步梳理完善当前流行的国产数据库清单及各数据库能力&#xff0c;提高自己对各类数据库的掌握程度&#xff0c;做一名合格的DBA。 本文将通过一下方式进行各类数据库资料梳理及对比。 主要待了解的数据…

【前端Vue】Vue3+Pinia小兔鲜电商项目第1篇:认识Vue3,1. Vue3组合式API体验【附代码文档】

全套笔记资料代码移步&#xff1a; 前往gitee仓库查看 感兴趣的小伙伴可以自取哦&#xff0c;欢迎大家点赞转发~ 全套教程部分目录&#xff1a; 部分文件图片&#xff1a; 认识Vue3 1. Vue3组合式API体验 通过 Counter 案例 体验Vue3新引入的组合式API vue <script> ex…

Makefile文件编译c++源码入门教程

Makefile相关依赖 MinGW MinGW&#xff08;Minimalist GNU for Windows&#xff09;是一个用于Windows系统的开源软件开发工具集&#xff0c;它允许你在Windows平台上使用GNU工具集来编译、链接和运行原生Windows程序。MinGW提供了GCC&#xff08;GNU Compiler Collection&am…

Android 调试打印对应的调用堆栈

在平时的开发调试的时候&#xff0c;经常碰到需要打印JAVA、Native C、kernel的代码调用关系。这里做一下记录 Jave堆栈打印 使用android.util.Log类进行打印 /*** Send a {link #DEBUG} log message and log the exception.* param tag Used to identify the source of a lo…

AJAX学习(四)

版权声明 本文章来源于B站上的某马课程&#xff0c;由本人整理&#xff0c;仅供学习交流使用。如涉及侵权问题&#xff0c;请立即与本人联系&#xff0c;本人将积极配合删除相关内容。感谢理解和支持&#xff0c;本人致力于维护原创作品的权益&#xff0c;共同营造一个尊重知识…

聊聊Python都能做些什么

文章目录 一、Python简介二、Python都能做些什么1. Web开发2. 数据分析和人工智能3. 自动化运维和测试4. 网络爬虫5. 金融科技 三、Python开源库都有哪些1. Web开发2. 数据分析和科学计算3. 机器学习和深度学习4. 网络爬虫5. 自动化和测试6. 其他常用库 四、相关链接 一、Pytho…

C++内存分布与动态内存管理

文章目录 :dizzy: C/C内存分布:dizzy:C语言中动态内存管理方式  :sparkles:malloc   :sparkles:calloc  :sparkles:reallocfree :dizzy:C语言中动态内存管理方式  :sparkles:new和delete操作内置类型  :sparkles:new和delete操作自定义类型 :dizzy:operator new与ope…

C语言自学笔记13----C语言指针与函数

C 语言指针与函数 在C语言编程中&#xff0c;也可以将地址作为参数传递给函数。 要在函数定义中接受这些地址&#xff0c;我们可以使用指针。这是因为指针用于存储地址。让我们举个实例&#xff1a; 示例&#xff1a;通过引用致电 #include <stdio.h> void swap(int n1, …

数星星 刷题笔记 (树状数组)

依题意 要求每个点 x, y 的左下方有多少个星星 又因为 是按照y从小到大 给出的 所以 我们在计算个数的时候是按照y一层层变大来遍历的 因此我们在处理每一个点的时候 只需要看一下 当前的点有多少个点的x值比当前点小即可 树状数组的 操作模板 P3374 【模板】树…

rsa数据加密无大小限制——golang实现

由于rsa加密需要公钥长度大于消息长度&#xff0c;消息太长时经常会报错Message too long for RSA 采用分块的方法&#xff0c;将消息分成更小的块&#xff0c;解决这个问题 package xrsa import ("encoding/pem""encoding/base64""crypto/x509"…

动态规划题目集一(代码 注解)

目录 介绍&#xff1a; 题目一: 题目二&#xff1a; 题目三&#xff1a; 题目四&#xff1a; 题目五&#xff1a; 题目六&#xff1a; 题目七&#xff1a; 题目八&#xff1a; 题目九&#xff1a; 介绍&#xff1a; 动态规划是一种算法设计技术&#xff0c;用于解决具有重叠…

水泵房远程监控物联网系统

随着物联网技术的快速发展&#xff0c;越来越多的行业开始利用物联网技术实现设备的远程监控与管理。水泵房作为城市供水系统的重要组成部分&#xff0c;其运行状态的监控与管理至关重要。HiWoo Cloud作为专业的物联网云服务平台&#xff0c;为水泵房远程监控提供了高效、稳定、…