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

简介: 一、 思想先行在我们讨论如何用技术手段实现之前,不妨先思考一下,或者说,如同普通的项目开发一样,首先是产品经理给出规划,再由技术实现。既然是个人的项目,那当然是我们自己来做这个产品经理了,那么首先,我们的产品需要哪些点呢?ui自动化,是测试层级的最上层,本质上是在容器里模拟用户的操作,来达到自动回归业务逻辑的目的。

一、 思想先行

在我们讨论如何用技术手段实现之前,不妨先思考一下,或者说,如同普通的项目开发一样,首先是产品经理给出规划,再由技术实现。
既然是个人的项目,那当然是我们自己来做这个产品经理了,那么首先,我们的产品需要哪些点呢?
ui自动化,是测试层级的最上层,本质上是在容器里模拟用户的操作,来达到自动回归业务逻辑的目的。这样的话,就很容易想到了,如果我们想要实现这个目的,首先,

  1. 我们的产品要能够根据用例规定的操作回放模拟操作;
  2. 用例应该是既能够单独执行,也可以按指定顺序集合执行;
  3. 如果希望达到无人值守的目的,那么邮件通知和CI必不可少;
  4. 我们肯定希望用例维护起来简洁便利。

其他可能没想到的做的过程里添加,但是以上四点基本就可以满足我们对简单的ui自动化测试的需求了,接下来我们就可以考虑如何去实现这个产品。

首先是技术的选型,在大脑由混沌状态逐渐清晰了我们的产品需求之后,我们就可以对市面上的技术进行选择,选择一个最合适我们的方向。

一般而言,肯定第一优先本公司的主流语言,另一方面,经过调查,目前来说已经可以确定只能用selenium来实现我们的“模拟回放”的需求,这是因为他是开源而免费的,其他的工具例如QTP尽管更加易用且有专门的公司维护,但是,他太贵了(并不考虑盗版&破解)。

selenium可以理解为一个工具集,包括IDE、Grid、RC(selenium 1.0)、WebDriver等,经常有人问selenium和webdriver是什么关系?这里稍微解释一下,可以视为selenium打包了webdriver,而webdriver本身是一套操作浏览器的api协议规范。实际用的话,可以不纠结于概念。

selenium本身支持多种语言,由于本家公司主流技术是php,不被支持,权衡之下选择了py作为开发语言,理由是py更加易于上手,现成的库很多很方便。

到这里,其实我们的第一需求,还记得吗?(我们的产品要能够根据用例规定的操作回放模拟操作;)已经确认了技术类型,我们接着看下面的需求。

第二个需求,实际上就是用例管理,一般而言各个语言都有自己的测试框架用于处理这些,python当然也不例外,py上的测试框架有unittest,pytest,nose等等,由于我们的需求各个框架基本都能满足,所以直接选择了py内置的测试框架unittest使用,如果想了解各大框架之间对比的话,可以点击这里查看。

ok,很顺利,到这里第二个需求也解决了技术选择,那么看看第三个需求,也就是无人值守。这里因为我们公司的ci工具是jenkins,所以就直接选定了用jenkins作为技术手段。

那么只剩下最后一个需求,实际上是一个很重要的优化点,如何让用例维护简单?这里其实是一个很弹性的选择,我的选择是只通过框架设计来达到,更好的选择是把用例的描述规范化甚至脱离代码层面,例如使用yaml来描述用例。

至此,我们的技术选型已经全部完毕,接下来是开始设计我们的测试框架。

目录
相关文章
|
1天前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
12 6
基于Python访问Hive的pytest测试代码实现
|
2天前
|
数据可视化 数据管理 测试技术
聊聊自动化测试框架
关于自动化测试框架的一些理解和思考总结,就是上面这些内容,提到的一些框架组件可能存在不合理的地方,仅供参考,如有更好的建议,请指出,不胜感激
13 4
聊聊自动化测试框架
|
6天前
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
|
5天前
|
Web App开发 Java 测试技术
自动化测试的利器:Selenium WebDriver入门与实践
【9月更文挑战第8天】在软件开发的海洋中,测试是确保我们不会溺水的那根救生索。Selenium WebDriver,作为自动化测试的明星工具,让这根救生索更加结实可靠。本文将带你快速上手Selenium WebDriver,从基础设置到实际操作,再到实战演练,让你的开发之旅更加平稳顺畅。
|
12天前
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
【9月更文挑战第3天】随着软件行业的迅速发展,代码质量和开发效率变得至关重要。本文探讨了Python在自动化及单元测试中的应用,介绍了Selenium、Appium、pytest等自动化测试框架,以及Python标准库中的unittest单元测试框架。通过详细阐述各框架的特点与使用方法,本文旨在帮助开发者掌握编写高效测试用例的技巧,提升代码质量与开发效率。同时,文章还提出了制定测试计划、持续集成与测试等实践建议,助力项目成功。
35 5
|
13天前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
40 4
|
14天前
|
Web App开发 Java 测试技术
自动化测试的新篇章:使用Selenium WebDriver进行高效测试
【8月更文挑战第31天】 在软件开发的海洋中,自动化测试犹如一艘航船,带领着质量保证团队驶向效率与精准的彼岸。本文将揭开Selenium WebDriver的神秘面纱,通过实际案例引导您掌握这一强大的自动化测试工具。我们将从Selenium WebDriver的基础概念出发,逐步深入到代码示例,最后探讨其在现实项目中的应用场景和优势,旨在为您的软件测试之旅提供清晰的指南。
|
14天前
|
Web App开发 测试技术 持续交付
探索自动化测试:以Selenium和Python为例
【8月更文挑战第31天】自动化测试在现代软件开发中扮演着不可或缺的角色。本文将通过一个简化的示例,展示如何使用Selenium和Python进行Web应用的自动化测试。我们将从安装必要的工具开始,逐步构建一个简单的测试脚本,并执行它来验证其功能。通过这个过程,我们旨在揭示自动化测试的价值,并激励读者深入探索这一领域。
|
14天前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与实践
【8月更文挑战第31天】本文将引导你了解自动化测试框架的重要性,并深入浅出地展示如何搭建和实施一个有效的自动化测试环境。通过实际案例,我们将一起探索自动化测试的“魔力”,解锁软件质量保障的新技能。
|
14天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【8月更文挑战第31天】在软件开发的世界中,自动化测试是提高产品质量和开发效率不可或缺的一环。本文将深入探讨Selenium这一强大的自动化测试工具,从其架构、优势到实战应用,一步步揭示如何利用Selenium框架提升软件测试的效率和准确性。通过具体的代码示例,我们将展示Selenium如何简化测试流程,帮助开发者快速定位问题,确保软件的稳定性和可靠性。无论你是测试新手还是资深开发者,这篇文章都将为你打开一扇通往高效自动化测试的大门。