基于 unittest 的 Web UI / HTTP 自动化测试框架

news2024/11/16 2:38:59

GitHub 上发现的一个自动化测试框架,封装的很厉害,对小白很友好,体验了下 demo 很不错,先看看下面封装好的 po 模式,很简洁。

"""import seldom
from seldom import Seldom
from poium import Page, Element


class BaiduPage(Page):
 """baidu page"""
 search_input = Element(id_="kw")
 search_button = Element(id_="su")


class BaiduTest(seldom.TestCase):
 """Baidu search test case"""


def test_case(self):
 """
 A simple test
 """
 page = BaiduPage(Seldom.driver)
 # page = BaiduPage(self.driver)
 page.get("https://www.baidu.com")
 page.search_input = "seldom"
 page.search_button.click()
 self.assertTitle("seldom_百度搜索")



if __name__ == '__main__':
 seldom.main(browser='chrome', debug=True)

 

上面可以看出来,简洁的不能再简洁。

特点:

  • 提供更加简单API编写自动化测试

  • 提供脚手架,快速生成自动化测试项目

  • 全局启动和关闭浏览器,减少浏览器的启动次数

  • 提供支持多种数据文件参数化

  • 支持用例失败/错误重跑

  • 支持生成HTML/XML测试报告

  • 支持HTTP接口测试 (v 2.0)

安装:

pip install seldom

创建项目:

seldom -project mypro

目录结构如下:

mypro/├── test_dir/
│ ├── test_sample.py
├── test_data/
│ ├── data.json
├── reports/
└── run.py

 

  • test_dir/ 测试用例目录。

  • test_data/ 测试数据文件目录。

  • reports/ 测试报告目录。

  • run.py 运行测试用例主文件。

运行项目效果:

python3 run.py



__ __
 ________ / /___/ /___ ____ ____
 / ___/ _ \/ / __ / __ \/ __ ` ___/
 (__ ) __/ / /_/ / /_/ / / / / / /
/____/\___/_/\__,_/\____/_/ /_/ /_/ v2.3.0
-----------------------------------------
                             
2021-10-12 00:47:33 [INFO] 📖 https://www.baidu.com
2021-10-12 00:47:37 [INFO] ✅ Find 1 element: id=kw , input 'seldom'.
2021-10-12 00:47:38 [INFO] ✅ Find 1 element: css selector=#su , click.
2021-10-12 00:47:40 [INFO] 👀 assertIn title: seldom_百度搜索.
2021-10-12 00:47:40 [INFO] 📖 https://www.baidu.com
2021-10-12 00:47:41 [INFO] ✅ Find 1 element: id=kw , input 'poium'.
2021-10-12 00:47:42 [INFO] ✅ Find 1 element: css selector=#su , click.
2021-10-12 00:47:43 [INFO] 👀 assertIn title: poium_百度搜索.
2021-10-12 00:47:43 [INFO] 📖 https://www.baidu.com
2021-10-12 00:47:44 [INFO] ✅ Find 1 element: id=kw , input 'HTMLTestRunner'.
2021-10-12 00:47:45 [INFO] ✅ Find 1 element: css selector=#su , click.
2021-10-12 00:47:46 [INFO] 👀 assertIn title: HTMLTestRunner_百度搜索.
2021-10-12 00:47:46 [INFO] 📖 http://www.itest.info
2021-10-12 00:47:53 [INFO] 👀 assertIn url: http://www.itest.info/.
2021-10-12 00:47:53 [PRINT] generated html file: file:///D:\mypro\reports\2021_10_12_00_47_32_result.html
2021-10-12 00:47:53 [PRINT] generated log file: file:///D:\mypro\reports\2021_10_12_00_47_32_log.log
.1.2.3.4

查看报告:

图片

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

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

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

相关文章

Windows可以ping通ubuntu,但ubuntu无法ping通windows

使用了NAT网卡和桥接网卡,电脑连了WiFi,桥接网卡桥接到WLAN上,Windows可以ping通Ubuntu但反过来不行! 1.可能是防火墙的问题,按照如下设置,无果 考虑是不是使用了两个网卡冲突了,取消NAT的链接 …

【损失函数】Cross Entropy Loss 交叉熵损失

1、介绍 主页介绍的几种损失函数都是适用于回归问题损失函数,对于分类问题,最常用的损失函数是交叉熵损失函数 Cross Entropy Loss。它用于测量两个概率分布之间的差异,通常用于评估分类模型的性能。 2、公式 对于二分类问题,交…

基于SSM的网络游戏交易平台设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

市场复盘总结 20240103

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240103;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…

useState和setState区别

一、主要是讲一下类组件的状态和函数组件的状态 1.类组件中state只能有一个, 函数组件中state可以有多个 函数组件:可以使用对个状态,便于控制。 // 文章数量的初始值const [articleData, setArticleData] useState({list: [],// 文章列表…

GreenPlum-数据世界的绿洲

GreenPlum的介绍 Greenplum是一个基于开源PostgreSQL数据库系统的高性能、可扩展的大数据处理平台。它是由Pivotal Software(现在是VMware的一部分)开发并维护的。Greenplum的设计目标是处理大规模的数据集,提供高并发、高吞吐量的查询和分析…

案例087:基于微信小程序的社区养老服务平台设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

Node.js本地搭建简单页面小游戏

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

LangChain与昇腾

LangChain这个词今年已经听烂了,今天基于昇腾的角度总结一下: Why LangChain ? 场景:构建一个LLM应用 在构建一个新项目时,可能会遇到许多API接口、数据格式和工具。要去研究每一个工具、接口很麻烦。 假设要构建一…

踩坑Vant组件 Dialog的组件调用

今天踩了一个非常蠢的坑,自己给自己蠢死的坑 在使用组件调用时自己没引入Dialog组件导致一直报错 不知道为什么全局引入不好使,后来使用了局部引用 现在没问题了 就这样局部引入一个Dialog.Component就可以了

【鸿蒙杂谈①】——鸿蒙基础介绍及应用领域

1.前言 小伙伴们大家好,最近被复习整的痛苦无比,所以今天咱们了解 一点轻松的东西,至于高并发就先放放吧。好了,废话不多说,咱们进入正题。 相信小伙伴们都已经看到了最近鸿蒙的势头了,那鸿蒙究竟是怎么发…

阿里云服务器系统盘高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘测评

阿里云服务器系统盘或数据盘支持多种云盘类型,如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等,阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…

[DevOps-05] Integrate工具

一、简要说明 持续集成、持续部署的工具很多,其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务,并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作,安装成本较高,下面会基于Docker搭建Jenkins。 二、Jenk…

RFIC设计的主要流程和发展趋势学习

无线是我们这个时代最大的特点,无论是移动宽带,还是卫星导航,无人机,智能驾驶,都离不开射频技术的快速发展。而射频设计中,发展最快的当属射频集成电路的发展。 对于数字集成电路,我们很多人都见…

ELK+kafka+filebeat企业内部日志分析系统搭建

看上面的拓扑图,我们至少准备七台机器进行下面的实验项目。 机器主要作用分布如下: 三台安装elasticsearch来搭建ES集群实现高可用,其他机器就依次安装filebeat,kafka,logstash和kibana软件 一、部署elasticsearch来搭建ES集群 1.安装jdk 由于ES运行…

华为月薪25K的自动化测试工程师到底要会那些技能!

​前言 3年自动化测试软件测试工程师职业生涯中,我所经历过的项目都是以自动化测试为主的。由于自动化测试是一个广泛的领域,我将自己的经验整理了一下分享给大家,话不多说,直接上干货。 自动化测试的目标和实践选择合适的自动化…

基于Java在线考试管理系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

【openGauss服务器端工具的使用】

【openGauss服务器端工具的使用】 gs_checkperf openGauss 不仅提供了gs_checkperf工具来帮助用户了解openGauss的负载情况。 使用数据库安装用户登录服务器,执行如下命令进行查看数据库性能: 简要信息展示:[ommopengauss03 ~]$ gs_checkperf…

【C语言】程序练习(四)

大家好,这里是争做图书馆扫地僧的小白。非常感谢各位的支持,也期待着您的关注。 目前博主有着C语言、C、linux以及数据结构的专栏,内容正在逐步的更新。 希望对各位朋友有所帮助同时也期望可以得到各位的支持,有任何问题欢迎私信与…

Rust 圣经 阅读 引用与借用

Rust 通过 借用(Borrowing) 在使用某个变量的指针或引用。 获取变量的引用,称之为 借用(borrowing) 。 引用与解引用 引用是为了解决在使用函数时,频繁地传递所有权。 引用只是获取了引用权,而…