当前位置: 首页 > news >正文

接口自动化测试框架【reudom】

reudom

Automated testing framework based on requests and unittest interface.

基于 Unittest 和 Requests 的 接口自动化测试框架

介绍
基于Unittest/Requests的接口自动化测试库

提供脚手架,快速生成接口自动化测试项目。
自动生成HTML测试报告。
支持用例参数化。
支持用例失败重跑
对原生Requests库API无损
目录架构
myreudom/
├── test_case/
│   ├── test_sample.py
├── reports/
└── run.py
test_dir/目录实现用例编写。
reports/ 目录存放生成的测试报告。
run.py 文件运行测试用例。
安装教程
> pip install reudom
If you want to keep up with the latest version, you can install with github repository url:

> pip install -U git+https://github.com/SeldomQA/reudom.git@master
创建项目
>reudom --project myreudom
运行项目:
> reudom -r run.py
Python 3.7.1

                     _                 
                    | |                
  _ __ ___ _   _  __| | ___  _ __ ___  
 | '__/ _ | | | |/ _` |/ _ \| '_ ` _ \ 
 | | |  __| |_| | (_| | (_) | | | | | |
 |_|  \___|\__,_|\__,_|\___/|_| |_| |_|                             
 --------------------------------------

                            @itest.info

generated html file:/Users/work/reports/2019_12_22_14_51_57_result.html
.1
查看报告
你可以到 myreudom\reports\ 目录查看测试报告。

reports文件夹可以不用自己去创建,它会在你执行run.py时自动创建此文件夹

Simple demo
请查看 demo/test_sample.py 文件

 
import reudomclass test(reudom.TestCase):def setUp(self):self.url = 'http://www.baidu.com'def test01(self):rep = reudom.request('get', url=self.url, headers=self.headers())result = rep.json()self.assertEqual(result['status'], '200')if __name__ == '__main__':reudom.main("test_sample.py")

说明:

  • 创建测试类必须继承 reudom.TestCase
  • 测试用例文件命名必须以 test 开头。
  • reudom引入了postgetheadpatchputdeleteoptions等方法。
main() 方法
import reudom# ...if __name__ == '__main__':seldom.main(path="./",title="接口自动化测试用例", description="详细测试结果:", debug=False,rerun=0,save_last_run=False,)

说明:

path : 指定测试目录或文件。
title : 指定测试报告标题。
description : 指定测试报告描述。
debug : debug模式,设置为True不生成测试HTML测试,默认为False。
rerun : 设置失败重新运行次数,默认为 0。
save_last_run : 设置只保存最后一次的结果,默认为False。
Run the test
import reudom

reudom.main(path="./")  # 当前目录下的所有测试文件
reudom.main(path="./test_dir/")  # 指定目录下的所有测试文件
reudom.main(path="./test_dir/test_sample.py")  # 指定目录下的测试文件
reudom.main(path="test_sample.py")  # 指定当前目录下的测试文件
说明:

如果指定的目录,测试文件必须以test 开头。
如果要运行子目录下的文件,必须在子目录下加 __init__.py 文件。
跳过用例

import reudomclass YouTest(reudom.TestCase):@reudom.skip("跳过这条用例的执行")def test_case(self):"""a simple test case """#...

在PyCharm里使用
当你使用PyCharm编译器或其他Python编译器时,您只需要使用pip install reudom安装后在你项目的文件夹内创建.py文件里import reudom就可以了
如果你需要正式的运行起来,只需在项目跟目录里创建run.py里使用上面的main方法取运行就可以啦;运行时会自动的在run.py的同级目录生成reports文件夹生成的 测试报告 就在里面!

AES加密
现在很多项目都使用 AES 对接口进行加密传输处理,所以我也对 reudom 库进行了支持
AES最常见的3种方案_AES-128、AES-192和AES-256,但目前仅对 AES-128 方案进行了分装,后面去会把剩下两种加进去
您只需在你的.py工程里引入import reudom,
然后使用:
reudom.aesCrypt(
                    key='16位', 
                    model='加密模式', 
                    iv='CBC模式需要它', 
                    encode_='默认GBK')
                    .aesEncrypt('传入需要加密的明文')
key 传入长度必须是:16、24、32位
model 可选择:ECB、CBC、CFB、PGP、OFB、CTR、OPENPGP 这七种模式
iv 使用 CBC 时需要传入的与 key 同样的长度
encode_ 默认使用了 GBK 编码
text 传入需要加密的 明文

 
import reudomreudom.aesCrypt(key='1234567890123456', model='CBC', iv='1234567890123456', encode_='GBK').aesEncrypt(text='123')控制台:
/usr/bin/python3 /Users/yuanbaolei/work/GitHub/reudom/CryptoAESAES/Cipher/aesEncrypt.py
15tT+y0b+lJq2HIKUjsvvg==Process finished with exit code 0
总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。  

相关文章:

接口自动化测试框架【reudom】

reudom Automated testing framework based on requests and unittest interface. 基于 Unittest 和 Requests 的 接口自动化测试框架 介绍 基于Unittest/Requests的接口自动化测试库 提供脚手架,快速生成接口自动化测试项目。 自动生成HTML测试报告。 支持用例参…...

【数据库问题】删除数据库失败,提示:there is 1 other session using the database

删除数据库失败&#xff0c;提示&#xff1a;there is 1 other session using the database 解决办法&#xff1a; SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datnametest_database AND pid<>pg_backend_pid(); 使用上述命令先关…...

【技术干货】如何快速创建商用照明 OEM APP?

本文介绍了如何在涂鸦 IoT 平台的 App 工作台上创建一款体验版商照 App、正式版 OEM App、上架 App、以及完成通用配置。 OEM App 开发 创建 App 登录 涂鸦 IoT 平台的 App 页面。 单击 创建APP&#xff0c;选择 商照 APP 进行创建。 在提示框里&#xff0c;完善 App 信息…...

阿里云ModelScope 是一个“模型即服务”(MaaS)平台

简介 项目地址&#xff1a;https://github.com/modelscope/modelscope/tree/master ModelScope 是一个“模型即服务”(MaaS)平台&#xff0c;旨在汇集来自AI社区的最先进的机器学习模型&#xff0c;并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的…...

Nodejs内置模块process

文章目录 内置模块process写在前面1. arch()2. cwd()3. argv4. memoryUsage()5. exit()6. kill()7. env【最常用】 内置模块process 写在前面 process是Nodejs操作当前进程和控制当前进程的API&#xff0c;并且是挂载到globalThis下面的全局API。 下面是process的一些常用AP…...

Vue2 修改了数组哪些方法,为什么

1、Vue2 修改了以下数组方法 push()、pop()、shift()、unshift()、splice()、sort()、reverse() 这些方法都是可以改变原数组的。 为了实现数据响应式更新&#xff0c;Vue2 在这些方法中添加了特定的代码&#xff0c;以便通知 Vue 视图更新数据 举个例子&#xff0c;当我们…...

均值滤波算法及例程

均值滤波算法是一种简单的图像滤波方法&#xff0c;它使用一个固定大小的滤波器来平滑图像。该滤波器由一个矩形的窗口组成&#xff0c;窗口中的像素值取平均值作为中心像素的新值。以下是均值滤波算法的步骤&#xff1a; 定义滤波器的大小&#xff08;窗口大小&#xff09;&a…...

拥抱产业发展机遇 兑现5G商业价值

[阿联酋&#xff0c;迪拜&#xff0c;2023年10月10日] 今天&#xff0c;以“将5G-A带入现实”为主题的2023全球移动宽带论坛在迪拜举行。本次大会上&#xff0c;华为轮值董事长胡厚崑与GSMA总干事Mats Granryd围绕“5G产业进程与发展”连线对话。胡厚崑指出&#xff0c;“技术发…...

Layui合计自定义列

需求&#xff1a;第四列通过计算&#xff1a;27除以220 正常的汇总&#xff0c;增加这个属性就行 特殊的列&#xff0c;需要特殊处理 获取合计行&#xff1a;$(".layui-table-total div.layui-table-cell"); 获取某列的值&#xff1a;$($(".layui-table-total …...

Tomcat自启动另一种方法

Tomcat自启动另一种方法 问题&#xff1a; 不知道怎么回事&#xff0c;好几台电脑都可以开机自启动tomcat&#xff0c;正常运行项目。一样的配置一样的操作流程&#xff0c;偏偏要运行的机器开机自启动后&#xff0c;项目不能运行&#xff0c;手动重启tomcat又可以用了。网上…...

C语言,标志法

标志法通常用来检查或者进行过程中一些状态变化。 有一些是为了观察变化&#xff0c;举出一些以往代码的例子&#xff1a; 1.找出一串数字中没有重复出现过的数字 #include <stdio.h> int main() {int arr[1000] { 0 };int n 0;scanf("%d", &n);int i…...

适合自学的网络安全基础技能“蓝宝书”:《CTF那些事儿》

CTF比赛是快速提升网络安全实战技能的重要途径&#xff0c;已成为各个行业选拔网络安全人才的通用方法。但是&#xff0c;本书作者在从事CTF培训的过程中&#xff0c;发现存在几个突出的问题&#xff1a; 1&#xff09;线下CTF比赛培训中存在严重的 “最后一公里”问题 &#…...

软件设计师学习笔记12-数据库的基本概念+数据库的设计过程+概念设计+逻辑设计

1.数据库的基本概念 1.1数据库的体系结构 1.1.1常见数据库 ①集中式数据库 数据是集中的&#xff1b;数据管理是集中的 ②C/S结构 客户端负责数据表服务&#xff1b;服务器负责数据库服务&#xff1b;系统分前后端&#xff1b;ODBC、JDBC ③分布式数据库 物理上分布、逻…...

distcc分布式编译

distcc https://gitee.com/bison-fork/distcc.git 下载工具链 mingw&#xff0c;https://www.mingw-w64.org/downloads/#w64devkitperl&#xff0c;https://strawberryperl.com/releases.html免安装zip版本&#xff0c;autoconf等脚本依赖perlautoconf、automake&#xff0c…...

Java面试题-0919

集合篇 Java面试题-集合篇HashMap底层实现原理概述javaSE进阶-哈希表 为了满足hashmap集合的不重复存储&#xff0c;为什么要重写hashcode和equals方法&#xff1f; 首先理解一下hashmap的插入元素的前提&#xff1a; hashmap会根据元素的hashcode取模进行比较&#xff0c;当…...

WPF列表性能提高技术

WPF列表性能提高技术 WPF数据绑定系统不仅需要绑定功能&#xff0c;还需要能够处理大量数据而不会降低显示速度和消耗大量内存&#xff0c;WPF提供了相关的控件以提高性能&#xff0c;所有继承自ItemsControl的控件都支持该技术。 虚拟化 UI虚拟化是列表仅仅为当前显示项创建…...

掌握 BERT:自然语言处理 (NLP) 从初级到高级的综合指南(2)

BERT的先进技术 当您精通 BERT 后&#xff0c;就该探索先进技术以最大限度地发挥其潜力。在本章中&#xff0c;我们将深入研究微调、处理词汇外单词、领域适应&#xff0c;甚至从 BERT 中提取知识的策略。 微调策略&#xff1a;掌握适应 微调 BERT 需要仔细考虑。您不仅可以微调…...

【算法优选】 二分查找专题——贰

文章目录 &#x1f60e;前言&#x1f332;[山脉数组的峰顶索引](https://leetcode.cn/problems/peak-index-in-a-mountain-array/)&#x1f6a9;题目描述&#xff1a;&#x1f6a9;算法思路&#x1f6a9;代码实现&#xff1a; &#x1f334;[寻找峰值](https://leetcode.cn/pro…...

SQL 的优化

SQL 优化是指对数据库查询语句进行优化&#xff0c;以提高查询性能和效率。下面列出了一些常见的 SQL 优化技巧&#xff1a; 1、索引优化 &#xff08;1&#xff09;使用适当的索引来加速查询操作。在频繁用于查询的列上创建索引&#xff0c;特别是在 WHERE 条件、JOIN 条件和…...

华为云云耀云服务器L实例评测|华为云上的CentOS性能监测与调优指南

目录 引言 ​编辑1 性能调优的基本要素 2 性能监控功能 2.1 监控数据指标 2.2 数据历史记录 2.3 多种统计指标 3 性能优化策略 3.1 资源分配 3.2 磁盘性能优化 3.3 网络性能优化 3.4 操作系统参数和内核优化 结论 引言 在云计算时代&#xff0c;性能优化和调优对于…...

多脉冲重复频率解速度模糊:原理、仿真与MATLAB实现

1. 脉冲雷达的速度模糊问题 雷达测速的基本原理大家都懂&#xff0c;就是通过多普勒效应计算目标速度。但实际操作中会遇到一个头疼的问题——速度模糊。这就像用卷尺量身高&#xff0c;如果身高超过卷尺长度&#xff0c;就得把几段卷尺接起来量&#xff0c;但接缝处容易出错。…...

告别复杂推导!用PyTorch 2.0手把手实现Reptile算法(附完整代码与对比实验)

告别复杂推导&#xff01;用PyTorch 2.0手把手实现Reptile算法&#xff08;附完整代码与对比实验&#xff09; 元学习&#xff08;Meta-Learning&#xff09;作为机器学习领域的前沿方向&#xff0c;近年来在少样本学习、快速适应新任务等场景展现出巨大潜力。然而&#xff0c;…...

如何用免费开源通信调试工具Wu.CommTool提升工业自动化效率

如何用免费开源通信调试工具Wu.CommTool提升工业自动化效率 【免费下载链接】Wu.CommTool 基于C#、WPF、Prism、MaterialDesign、HandyControl开发的通讯调试工具。支持Modbus Rtu调试、Mqtt调试、TCP调试、串口调试、UDP调试 项目地址: https://gitcode.com/gh_mirrors/wu/W…...

Arduino电机与舵机控制:从晶体管驱动到PWM调速实战

1. 项目概述与核心价值在机器人、智能小车或者任何一个需要“动起来”的嵌入式项目中&#xff0c;电机控制都是你绕不开的一道坎。你可能已经能让LED闪烁、让屏幕显示文字&#xff0c;但当你第一次尝试让一个小马达转起来&#xff0c;却发现Arduino板子上的引脚直接冒烟时&…...

避坑指南:HugeGraph-Server 0.12.0 用MySQL做后端存储,配置文件到底怎么改?(附完整流程)

HugeGraph-Server 0.12.0 MySQL后端配置深度解析与实战避坑指南 当选择MySQL作为HugeGraph-Server的后端存储时&#xff0c;配置文件的细微差异往往成为项目落地的"拦路虎"。本文将深入剖析hugegraph.properties中MySQL相关配置的每一个关键参数&#xff0c;结合典型…...

告别python-pcl!用pclpy在Windows上轻松玩转PCL点云处理(Python 3.6/3.7保姆级教程)

告别python-pcl&#xff01;用pclpy在Windows上轻松玩转PCL点云处理&#xff08;Python 3.6/3.7保姆级教程&#xff09; 在三维视觉和机器人领域&#xff0c;点云处理一直是核心技术难点之一。PCL&#xff08;Point Cloud Library&#xff09;作为开源领域的标杆工具库&#x…...

交通一线运维优选:Smart-S3 多模光时域反射仪

铁路、高速公路现场运维常需轻便、快速、易用的光纤检测工具&#xff0c;Smart-S3 多模光时域反射仪以超轻机身和稳定性能&#xff0c;成为一线巡检与抢修的理想选择。Smart-S3 多模光时域反射仪是一款便携式光纤测试仪表&#xff0c;可精准测量光缆长度、损耗、故障点位置&…...

从FreeRTOS到RT-Thread:手把手教你正确使用操作系统的动态内存API(避坑malloc)

从FreeRTOS到RT-Thread&#xff1a;嵌入式实时操作系统动态内存管理实战指南 在嵌入式开发领域&#xff0c;动态内存管理一直是开发者面临的棘手问题之一。当项目从裸机迁移到实时操作系统&#xff08;RTOS&#xff09;环境时&#xff0c;许多开发者会不自觉地延续使用标准C库的…...

别再只盯着PageRank了!用Python实战特征向量、Katz和PageRank三大中心性算法

用Python实战三大中心性算法&#xff1a;特征向量、Katz与PageRank的深度对比 当我们需要识别社交网络中最有影响力的用户&#xff0c;或是优化网页排序结果时&#xff0c;图论中的中心性算法往往能提供关键洞见。本文将带您用Python实现三种经典的中心性算法——特征向量中心性…...

UE5《Electric Dreams》项目PCG技术解析 之 基于PCGSettings的模块化关卡构建

1. PCG技术为何成为UE5开发者的新宠 第一次在UE5.2中接触到PCG框架时&#xff0c;那种感觉就像从手动挡汽车换成了自动驾驶。以前用Houdini做程序化生成时&#xff0c;光是处理插件兼容性和资源导入问题就能耗掉大半天。现在原生集成的PCG框架直接把开发效率提升了至少三倍&…...