非常好用,绝对未来黑马的 Python 开源测试框架 PySimpleTest

news2024/11/18 6:16:05

非常好用,绝对未来黑马的 Python 开源测试框架 PySimpleTest

简单介绍

PySimpleTest 是一个非常简洁开源的python代码测试框架,作者是 https://github.com/Time-Coder?tab=stars

你可以在以下网站找到PyPI索引:https://pypi.org/project/PySimpleTest/

如果你正在为在rotot框架中写一个简单的for循环而苦恼,或者你正在为弄清楚如何在PyTest中调用fixture而苦恼的话,那么这个框架便是你最需要的。 PySimpleTest使用非常原生的Python语法和逻辑,让测试代码变得非常容易,其非常适合小型的测试项目。它有以下几个优点。

  1. 使用本地的Python编译器(不像pytest或robot框架),因此其非常容易安装和使用,并且没有繁杂的依赖。
  2. 只提供函数,没有类、fixture、装饰器或其他奇怪的东西,仅仅通过函数来实现所有的测试需求。
  3. 提供简单易用的断言系统,如should_become_true, should_keep_true。
  4. 提供非常好用的日志系统。你可以使用section, subsection, …来组织你的测试报告。
  5. 提供许多测试助手功能,如 "wait"带GUI进度条,“say” 来展示的字符串。
  6. 提供手动操作请求功能的函数,如 please 和 please_check。
  7. 有颜色的cmd输出,表示失败、通过、错误等。
  8. 带有链接信息的日志文件。如果你使用Sublime这样的编辑器,可以实现双击测试报告行,跳转到相应的代码。

简单应用

例如如下代码:

import PySimpleTest as pst

a = 2
pst.should_be_equal(a, 2)
pst.should_be_less(a, 1)

你将会得到如下输出,简洁明了,并且cmd输出都是着色的状态,非常直观和美观:

68747470733a2f2f73312e617831782e636f6d2f323032302f30382f31352f646b6f4866532e706e67

优点展示

断言功能

其提供了很多可以直接利用的函数,支持基本上所有的断言需求。

  • should_be_true(expression):
    If expression is True, it will print “Pass: () is True” and log in three output files. Else “Fail: () is False” will be printed and logged.
  • should_be_false(expression): Pass when expression is False.
  • should_be_equal(value1, value2): Pass when value1 == value2.
  • should_not_be_equal(value1, value2): Pass when value1 != value2.
  • should_be_less(value1, value2): Pass when value1 < value2.
  • should_not_be_less(value1, value2): Pass when value1 >= value2.
  • should_be_greater(value1, value2): Pass when value1 > value2.
  • should_not_be_greater(value1, value2): Pass when value1 <= value2.
  • should_be_approx(value1, value2, tolerance = 5, func = abs): Pass when func(value1-value2) <= tolerance.
  • should_not_be_approx(value1, value2, tolerance = 5, func = abs): Pass when func(value1-value2) > tolerance.
  • should_keep_true(expression, duration): Pass when expression keeps True for duration seconds. Try following example:

可以看出,上面的函数真的是所见即所得,会点英语的基本上都能看得懂这些函数是什么意思,怎么用。

日志系统记录功能

其日志系统可以生成测试报告,并且可以通过代码来控制报告的章节分布等。

比如如下所示的代码:

section("Test eval function")

section("eval single value", level = 2)
should_be_equal(eval("1"), 1)
should_be_equal(eval("1.2"), 1.2)
should_be_equal(eval("-3.6"), -3.6)
should_be_equal(eval("True"), True)

section("eval math expression", level = 2)
should_be_equal(eval("3 + 5*2"), 13)
should_be_equal(eval("(6-2)*5"), 20)

其生成的结果如下:

68747470733a2f2f73312e617831782e636f6d2f323032302f30382f31352f646b6f7877712e706e67

测试报告头部/尾部信息控制功能

这个框架可以定制报告的头部和尾部,并且对基本的测试结果进行汇总。

68747470733a2f2f73312e617831782e636f6d2f323032302f30382f31352f646b6f4c6c512e706e67

测试程序运行进程显示和提示功能

令我惊讶的是,其可以通过代码配置,仅仅几行代码便可以进行测试程序的进程显示,或者对某些手动的操作进行一些提示和等待。比如说对硬件进行测试,可能需要在测试程序执行到某些位置的时候,需要人工去拨动一个开关,那么程序在这个过程中是需要进行一个等待操作。而这个框架便可以弹出提示框对测试者进行有效提示,甚至进行声音提示!!!!

68747470733a2f2f73312e617831782e636f6d2f323032302f30382f31352f646b6f766d6e2e706e67

我已经迫不及待地想要将我的所有测试代码都转为使用这个框架了,绝对的YYDS,软硬件测试的终极杀器啊!

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

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

相关文章

CSS 排行榜

CSS 排行榜 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>排行榜</title><style type"text/css">* {margin: 0;padding: 0;}/* 容器 */.rank-container {width: 400px;color: #333;font-size: 14p…

go 常用命令

巩固学习最好的方法是通过go help看文档 GO语言规范文档 终端执行命令 go help environment GOBIN The directory where ‘go install’ will install a command. go 命令使用 go <command> [arguments]command&#xff1a; The commands are:bug start a b…

十、MySQL 聚合函数、分组查询及过滤分组

文章目录一、聚合函数1.1 COUNT()函数1.2 SUM()函数1.3 AVG()函数1.4 MAX()函数1.5 MIN()函数二、分组查询及过滤分组2.1 创建分组2.2 使用HAVING过滤分组2.3 WHERE和HAVING的对比前置知识&#xff1a; 一、数据库开发与实战专栏导学及数据库基础概念入门 二、MySQL 介绍及 MyS…

你知道这些快捷键吗?

今天就给大家带来常用的电脑快捷键&#xff0c;让你的办公和学习效率加倍&#xff0c;一起来看看吧&#xff01; 快捷键一&#xff1a;快速切换窗口 想要快速切换电脑正在使用的窗口程序&#xff0c;就可以使用“AltTab”键即可快速切换。先按住“Alt”按键&#xff0c;再按“T…

GO语言的实战学习(猜谜游戏和在线词典)| 青训营笔记

一.GO语言的实战学习 1.1 前言 在上文我们急速学习了Go语言的入门&#xff0c;今天我们来学习一下Go语言的实战 本专栏代码&#xff0c;源码打包下载地址如下&#xff1a; https://download.csdn.net/download/weixin_52908342/87389481 二.猜谜游戏 1.导入依赖包&#xff…

模拟实现一个简单的命令行解释器(shell)

目录 前言 环境变量与本地变量 和环境变量相关的命令 获取环境变量的三种方法 第一种 第二种 第三种 进程地址空间 页表 为什么存在进程地址空间 第一 第二 第三 进程控制 进程的产生 进程终止 进程等待 进程替换 模拟实现一个shell 前言 我们通过各种指令来实现…

脚手架2 以nacos为注册中心,基于Gateway构架网关

在前一步上已经说明&#xff0c;组件脚手架的第一步就是构建注册中心&#xff0c;由于采用nacos&#xff0c;这些将直接放在配置文件中实现&#xff0c;不再单独搭建eureka。 spring nacos jdk各组件依赖版本推荐 Spring Boot&#xff0c;Spring Cloud&#xff0c;Spring Clo…

HTC Cosmos手柄的坑

HTC Cosmos手柄的坑Unreal蓝图通过手柄射线操作UI用浏览器插件进行游戏界面设计Cosmos手柄遇到的问题Unreal蓝图通过手柄射线操作UI Unreal蓝图通过手柄射线操作UI很简单&#xff0c;虚幻提供一个WidgetInteraction的组件&#xff0c;可以模拟键盘和鼠标操作。 Enable Hit Te…

【最优潮流】二阶锥松弛在配电网最优潮流计算中的应用(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

组件化 – 额外知识补充

1、组件的生命周期 1.1、认识生命周期 什么是生命周期呢&#xff1f; 生物学上&#xff0c;生物生命周期指得是一个生物体在生命开始到结束周而复始所历经的一系列变化过程&#xff1b;每个组件都可能会经历从创建、挂载、更新、卸载等一系列的过程&#xff1b;在这个过程中…

升级 Node 版本教程

【node】升级 Node 版本教程 文章目录 Window 系统Mac 或 Linux系统 Window 系统 window系统升级node只能到node官网下载window安装包来覆盖之前的node。node 安装教程附下载地址&#xff1a;https://blog.csdn.net/qq_45677671/article/details/114535955因为 n 模块是不支…

transformers学习笔记3

创建model的方法automodel创建预训练模型使用automodel直接创建&#xff0c;使用的是hug face官网上的预训练好的模型参数&#xff0c;完成创建后再使用自己本地的数据集进行迁移训练automodel api 去官网上下载用户指定类型模型的config file 和model file&#xff0c;config说…

【Rvnc】基于noVnc集成的远程终端管理平台

新年好&#xff01;祝各位小伙伴们新年快乐&#xff01;工资翻倍&#xff01; 项目介绍 项目地址&#xff1a;https://github.com/LogestCai/Rvnc 基于noVNC、C#和easyAdmin快速开发的远程管理平台。 可快速部署企业内部远程管理平台&#xff0c;方便企业运维管理。 安装教程…

I.MX6ULL裸机开发笔记6:GPIO控制原理

目录 一、了解GPIO 二、时钟 三、引脚复用 四、引脚属性 五、控制GPIO总结 六、硬件原理图 一、了解GPIO 数量 5组GPIO&#xff08;GPIO1~GPIO5&#xff09;,每组最多32个&#xff0c;共124个 GPIO1_IO0——GPIO1_IO31GPIO2_IO0——GPIO2_IO21GPIO3_IO0——GPIO3_IO2…

#C. wll 的糖果分配

说明过年啦&#xff01;wll 带着好多好多的糖果回到家里&#xff0c;打算分给弟弟妹妹们她一共带回了 66 种不同的糖果&#xff0c;第 ii 种糖果的美味度为 ii&#xff0c;共有 a_iai 颗但是弟弟们和妹妹们不想在一起玩&#xff0c;他们想分别拿走糖果&#xff0c;各自玩耍那么…

物联网到底是什么,生活中能用得上吗?

物联网在近些年以来一直都是热点&#xff0c;人人都在提物联网。但物联网到底是什么&#xff1f;究竟能做什么&#xff1f;说起物联网&#xff0c;你是不是感到既熟悉又陌生&#xff1f;没错&#xff0c;从随处可见的射频技术&#xff0c;智能穿戴&#xff0c;智能电器&#xf…

Android 系统 Framework 中定制实现开关机动画实践

文章目录写在前面需求背景主要问题接口测试权限问题对比测试最后实现方案其他问题总结写在前面 本文主要记录了在Android 10 系统 定制开关机动画时遇到的权限&#xff08;读写&#xff09;问题以用开关机动画资源的流程、文件要求等问题。 涉及知识点&#xff1a; Linux中文件…

【iOS】—— 工厂设计模式

工厂设计模式 文章目录工厂设计模式设计模式概念设计模式七大准则开闭原则单⼀职责原则里氏替换原则依赖倒转原则接口隔离原则迪米特法则合成复用原则类族模式简单工厂模式优点缺点主要作用示例文件分类实现效果&#xff1a;工厂方法模式优点缺点主要作用&#xff1a;示例&…

Ceres 目标函数(pose_graph_3d使用之)构建学习笔记

问题说明 ceres-solver库是google的非线性优化库&#xff0c;可以对slam问题&#xff0c;机器人位姿进行优化&#xff0c;使其建图的效果得到改善。pose_graph_3d是官方给出的二维平面上机器人位姿优化问题&#xff0c;需要读取一个g2o文件&#xff0c;运行程序后返回一个pose…

Android 课设之个人音乐播放器

第一章 绪论1.1选题背景由于时代快速发展&#xff0c;各种各样的音乐播放器层出不穷&#xff0c;此时需要一个可以根据个人爱好来播放的音乐播放器就尤为重要&#xff0c;因此我特意制作了一个根据自己喜好的音乐播放器&#xff0c;只需要把音乐文件放进制定的目录下即可。1.2开…