从零开始搭建一个简单的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来描述用例。

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

目录
相关文章
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
553 11
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
370 11
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
631 7
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
265 4
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
240 1
|
Java 测试技术 API
软件测试中的自动化测试框架选择与应用##
在快速迭代的软件开发周期中,选择合适的自动化测试框架对于提高软件质量和开发效率至关重要。本文探讨了当前流行的几种自动化测试框架的特点和适用场景,旨在为软件开发团队提供决策依据。 ##
|
7月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1159 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
8月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
254 4