从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure)

简介: 二、先搭一个架子在我还是小白连py语法都不太熟悉的时候,经常在网上看关于自学ui自动化测试的博客,最熟悉的套路莫过于先给你介绍一下selenium的各个api,然后写一套代码去登陆微博或者百度什么的,但我今天不愿意这么写,因为这样的话,实际上并没有什么卵用,他不能用到实际的项目里,今天我们来先搭一个架子。

二、先搭一个架子

在我还是小白连py语法都不太熟悉的时候,经常在网上看关于自学ui自动化测试的博客,最熟悉的套路莫过于先给你介绍一下selenium的各个api,然后写一套代码去登陆微博或者百度什么的,但我今天不愿意这么写,因为这样的话,实际上并没有什么卵用,他不能用到实际的项目里,今天我们来先搭一个架子。

搭架子先画图

我们首先来确定一下我们的项目架构图,也即是我们打算怎么具体设计我们的项目,下面来聊一聊我设计时的思路。

其他的先不谈,测试用例肯定是集中放到一个地方的,于是我创建了一个testcase的位置专门用来放用例,此时我们的架构图是这样的:
—————testcase

接下来我又想到,我们的用例可能需要按照要求集合执行,所以我又创建了一个testsuite的位置专门放集合的用例,于是架构图多了一个:
—————testcase
—————testsuite

然后又想到,因为我们的测试用例需要支持单独执行,所以必然需要重复的测试前和测试后的动作,先不谈更多的动作,但是打开和关闭浏览器肯定是必须的,所以要想不在每个case里重复的写这些动作,我们就需要一个测试用例的主类用以被case继承,我把这个主类单独的放置到了一个位置maincase,于是架构图:
—————testcase
—————testsuite
—————maincase

我们再来想一下case里更具体的问题吧,比如说,我们可能需要一个(除开浏览器操作外的)工具集用以对case提供支持,包括发送Email,打开windows窗口选择文件还有其他可能遇到的奇奇怪怪的事情,我们给这个部分留了一个util的位置,再来看看架构图:
—————testcase
—————testsuite
—————maincase
—————util

再想想,如果我们发送email,那当然是要先生成测试报告,测试里遇到问题的话,最好可以有截图用来看看当时为什么出错了,那么我们各留一个位置给报告和截图:
—————testcase
—————testsuite
—————maincase
—————util
—————testreport
—————sreenshot

接下来,处理一下我们的元素存放位置,元素的管理是UI自动化里的重要点,如果不做到case和元素分离的话,维护用例将会变得非常困难,每次迭代只要元素变动了,你就得一个一个case的改,这里我们把元素集中到一个config里,稍后在具体编写阶段告诉大家如何存储,这里先分一个config的位置给元素:
—————testcase
—————testsuite
—————maincase
—————util
—————testreport
—————sreenshot
—————config

最后,如果我们希望我们的用例足够简洁的话,我们就应该把那些常用的操作封装起来,这里的封装分为两个层面封装,第一是对常用基础操作的封装,第二是对常用业务操作的封装。

解释一下的话,就是我们首先把基础的操作封装到一起,例如,寻找元素,如果我们想统一使用隐式等待(不明白的话后续篇章会介绍到)去查找元素的话,就需要把selenium里的find方法封装一下,这种是对原先的基础操作的封装;
而比如说,我们写case的时候发现,很多个case都会有一个同样的跳转路径,都是通过点击xx,再点击xx到达这个页面,我们就把这个操作路径封装了给我们的case使用,避免case里重复的写这些路径,这层封装是对复用性高的业务逻辑操作的封装。

我们给这两层封装留个位置operate:

—————testcase
—————testsuite
—————maincase
—————util
—————testreport
—————sreenshot
—————config
—————operate

这样目前来看,我们的架构图大体就画完了,剩下的如果有遗漏再开发过程里修复吧,我们看看最终的项目架构(目前还是空的):

img_628a4d64ad5a5764b4c224e5dc673da9.png
image

目录
相关文章
|
27天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
83 8
|
2天前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
34 15
|
10天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
113 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
23天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
55 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
28天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
44 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
3月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
158 5
|
25天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
76 19
Selenium IDE:Web自动化测试的得力助手
|
27天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
150 17
Selenium:强大的 Web 自动化测试工具
|
3月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
3月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
596 5

热门文章

最新文章