精华内容
下载资源
问答
  • pythonweb自动化测试框架
    千次阅读
    2022-05-09 20:43:21

    在开始学习python自动化测试之前,先了解目前市场上的自动化测试框架有哪些?

    随着技术的不断迭代更新,优胜劣汰也同样发展下来。从一开始工具型自动化,到现在的框架型;从一开始的能用,到现在的不仅能用,还需要支持可拓展,支持多语言等等…以下框架可以提供学习,排名不分先后。

    Selenium
    
    Github Start : 20.8K
    

    在这里插入图片描述

    凡是学过或者正在学,亦或者准备学的同学,都应该知道selenium这个测试框架了。这是目前市场应用最广,发展最快的测试框架。

    Selenium的工作原理是通过使用特定于每种语言的驱动程序支持各种编程语言。

    Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驱动程序最受Python和C#欢迎。Selenium测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代Web浏览器中运行。Selenium支持的浏览器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。

    Selenium是一套web的测试框架,所以无法在客户端以及桌面端的应用中使用。

    如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…

    Appium
    
    Github Start : 13.6K
    

    图片

    Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,移动web 应用和混合应用。

    “移动原生应用”是指那些用 iOS 或者 Android SDK 写的应用。

    “移动 web 应用”是指使用移动浏览器访问的应用(Appium 支持 iOS 上的 Safari 和 Android 上的 Chrome)。

    “混合应用”是指原生代码封装网页视图——原生代码和 web 内容交互。

    重要的是,Appium 是一个跨平台的工具:它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试脚本,这样大大增加了 iOS 和 Android 测试套件间代码的复用性。

    如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…

    Cypress
    
    Github Start : 30.7K
    

    在这里插入图片描述

    Cypress是什么,可能很多国内的测试同学都很少有听闻,但是在github上面高达30K的start,说明市场对这个框架的认可程度了。这是一款web应用的E2E测试框架,通过js语言编写的。

    这个框架与selenium最大的区别就是,不需要下载驱动。Cypress集成了浏览器驱动,在使用他的时候,只需要下载安装即可。正如官网所说的,开箱即用。

    这么强大的框架,是不是什么程度都可以用呢?答案,不是。

    首先,Cypress只适用于web的应用

    第二,Cypress只能使用js进行代码的编写,所以这需要有一定的js

    语言基础

    第三,Cypress不支持多个浏览器tab

    第四,Cypress只支持自身的浏览器

    Jmeter
    
    Github Start : 5.2K
    

    图片

    做过性能测试的同学应该都知道这个性能测试工具了。Jmeter,毋庸置疑是目前市场使用率最高的性能测试工具了,与loadrunner很大的不同就是免费。

    只要是免费的工具,一定会有很大的市场。

    Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。

    同时,JMeter可以帮助你对你的应用程序进行回归测试。通过你创建的测试脚本和assertions来验证你的程序返回了所期待的值。为了更高的适应性,JMeter允许你使用正则表达式来创建这些assertions.

    Puppteer
    
    Github Start : 70.6K
    

    图片

    Puppeteer可能很少人听过,但是这个工具,确实挺好用的。它是Google开源的一个测试录制插件。

    Puppeteer对于模拟类似人类的浏览器交互行为非常出色。像Selenium Webdriver一样,它可以模拟广泛的浏览器用户交互行为。Puppeteer还具有Selenium Webdriver所缺乏的一系列功能。它可以捕获屏幕截图并生成特定屏幕的PDF。如果你想用它来进行可视化测试,这是一个很好的选择。它的高速度也是很多开发者选择测试工具的一大考量。Puppeteer的另一个主要卖点是,它与Chrome及其调试和开发者工具高度集成。这一点应该不奇怪,因为和Chrome一样,Puppeteer也是由Google开发并支持的。因此,如果你只在Chrome中开发和测试你的应用程序,Puppeteer是一个很好的选择。然而,如果你使用Firefox、Edge或Safari进行开发或测试,Puppeteer是没办法的,你应该选择Selenium Webdriver。

    playwright
    
    Github Start : 70.6K
    

    图片

    Playwright是微软提供的一个自动化工具,与puppeteer非常相似,也算是puppeteer的衍生品,弥补了puppeteer支持浏览器这一块的不足。

    Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。

    Playwright提供的自动化技术是绿色的、功能强大、可靠且快速,支持Linux、Mac以及Windows操作系统。

    如果对python自动化测试、web自动化、接口自动化、移动端自动化、面试经验交流等等感兴趣的测试人,可以 点这自行获取…

    更多相关内容
  • 基于PythonwebUI自动化测试框架,支持多平台~ 支持xmind文件转为测试用例,目前存在部分问题 支持chrome驱动自动下载 支持用例重跑及自动错误截图 使用antd美化html报告 采用po模式,定位元素与实际操作分离,同...
  • Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的...

    一、首先你得知道什么是Selenium?

    Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。

    • Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如java、python等)的形式导出成测试用例。

    • Selenium WebDriver:提供Web自动化所需的API,主要用作浏览器控制、页面元素选择和调试。不同的浏览器需要不同的WebDriver。

    • Selenium Grid:提供了在不同机器的不同浏览器上运行selenium测试的能力。

    下面我会教大家如何运用Python结合Selenium WebDriver库搭建web自动化测试框架。

    二、自动化测试框架由什么组成?

    一个典型的自动化测试框架一般包括用例管理模块、自动化执行控制器、报表生成模块和log模块,这些模块相辅相成。
    在这里插入图片描述

    接下来介绍各模块的逻辑单元:

    1、用例管理模块

    用例管理模块包括新增、修改、删除等操作单元,这些单元又会涉及到用例书写模式,测试数据库的管理、可复用库等。

    2、自动化控制器

    控制器是自动化用例执行的组织模块,主要是负责以什么方法执行我们的测试用例.

    3、报表生成模块

    主要负责执行用例后的生成报告,一般以HTML格式居多,信息主要是用例执行情况。另外还可以配置发送邮件功能。

    4、log模块

    主要用来记录用例执行情况,以便于高效的调查用例失败信息以及追踪用例执行情况。

    三、自动化框架怎么去设计和实现?

    1、需求分析

    首先我们的测试对象是一个web平台,基于此平台设计的框架要包含测试用例管理、测试执行控制器、测试报告以及测试日志的生成。

    2、设计和实现

    页面管理

    假设测试web对象为一个典型单页面应用,所以我们采用页面模式。页面模式是页面与测试用例之间的纽带,它将每个页面抽象成一个单独的类,为测试用例提供页面元素的定位和操作。 BaseClass作为父类只包含driver成员变量,用来标识Selenium中的WebDriver,以便在子类中定位页面元素。LoginClass和PageClass作为子类,可以提供页面元素的定位和操作方法。比如登录页面。
    在这里插入图片描述
    从页面看,需要操作的元素分别为:登录用户名、密码、下次自动登录和登录按钮。具体实现代码如下:
    页面父类BaseClass.py

    在这里插入图片描述

    LoginClass继承自BaseClass,并进行登录的元素定位以及操作实现。代码中定位了username和password,并添加了设置用户名和密码的操作。
    在这里插入图片描述
    公共库模块
    公共库模块是为创建测试用例服务的,主要包括常量、公共函数、日志、报告等。
    Common.py
    在这里插入图片描述
    测试用例信息类用来标识测试用例,并且包括执行用例、执行结果信息,主要包括以下字段。
    在这里插入图片描述
    日志主要用来记录测试用例执行步骤及产生的错误信息,不同的信息有不同的日志级别,比如Information、Warning、Critical和Debug。由于每个测试用例产生的日志条目比较少,所以在测试框架中只利用了最高级别的日志打印,即Debug级别,该级别也会将其他所有的日志级别的信息同样打印出来。在具体的实现中引用了Python标准库中的logging类库,以便更方便的控制日志输出。

    测试用例仓库

    用例仓库主要用来组织自动化测试用例。每条测试用例都被抽象成一个独立的类,并且均继承自unittest.TestCase类。 Python中的unittest库提供了丰富的测试框架支持,包括测试用例的setUp和tearDown方法,在实现用例的过程中可以重写。依托页面管理和公共库模块实现的页面方法和公共函数,每一个测试用例脚本的书写都会非常清晰简洁。
    在这里插入图片描述

    从这个测试用例中,我们可以看到

    • Setup中定义了执行测试用例前的一些实例化工作

    • tearDown对执行完测试做了清理和写日志文件工作

    • 测试步骤、测试数据和测试检查点非常清晰,易修改(比如用户名密码)

    • 日志级别仅有Debug,所以写日志仅需用同一Log方法

    3、用例执行模块

    如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以273462828,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

    执行模块主要用来控制测试用例脚本的批量执行,形成一个测试集。用例的执行引用了Python标准库中的subprocess来执行nosetests的shell命令,从而执行给定测试用例集中的用例。测试用例集是一个简单的纯文本文件,实现过程中利用了.txt文件testcases.txt。
    在这里插入图片描述

    用例前没有“#“标记的测试用例脚本会被执行,而有”#“标记的则会被忽略,这样可以很方便的控制测试集的执行,当然也可以创建不同的文件来执行不同的测试集。

    四、需要改进的模块

    对于现有实现的测试框架,已经可以满足web对象的自动化需求,但还是有些可以改进提高的地方,比如:

    • 部分用例可以尝试数据驱动。

    • 二次封装selenium的By函数,以便更高效定位元素。

    • 没有进行持续化集成。

    五、总结

    基于Selenium实现的web自动化测试框架不仅轻量级而且灵活,可以快速地开发自动化测试用例,结合本篇的框架设计和一些好的实践,希望对大家以后的web自动化框架的设计和实现有所帮助。

    资源分享

    最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
    在这里插入图片描述
    这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
    在这里插入图片描述

    展开全文
  • github地址: https://github.com/wuranxu/webTest 基于PythonwebUI自动化测试框架,支持多平台~带有自动下载chrome驱动功能
  • 在上一篇章就软件自动化测试当中最简单也是最常用接口自动化测试进行了一个比较完整性的实战。可是当我们投入到实际工作应用中就会发现,虽然接口测试很有效也很容易推广开来,但是很多时候真正需要测试验证的不仅仅...
    点击下方图片有惊喜,精美礼品等你来拿哦


    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    专栏系列(点击解锁)学习路线指引知识定位
    🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
    语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
    自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
    自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
    数据库开发实战篇 更新中
    爬虫入门与实战 更新中
    数据分析篇 更新中
    前端入门+flask 全栈篇 更新中
    django+vue全栈篇 更新中
    拓展-人工智能入门 更新中
    网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
    网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
    vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
    shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
    WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
    测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
    测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
    RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
    Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
    MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。


    在上一篇章就软件自动化测试当中最简单也是最常用接口自动化测试进行了一个比较完整性的实战。可是当我们投入到实际工作应用中就会发现,虽然接口测试很有效也很容易推广开来,但是很多时候真正需要测试验证的不仅仅是接口测试的返回,还包括前端页面的重现。所以近下来的学习内容就将进入到 WEB 自动化(即 WEB 端 UI 自动化)

    在早之前的 基于JAVA实现的WEB端UI自动化 专栏,写过一篇文章 《基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍》,感兴趣的小伙伴可以看一看,关于自动化测试基础理论略同。

    🐳 什么是 WEB自动化


    • WEB 自动化测试就是把在网页上的人工操作转化为使用机器、软件、程序来测试产品的过程。也就是把大量需要人工回归用例、人工操作的这些手段由计算机代替执行的一种测试方式。模拟人工执行的一系列操作,同时最终会抓取并判断结果是否符合我们的预期的这样一个过程。
    • 换而言之,就是把 “点点点” 通过编程手段实现的一种测试的手段。(做 WEB 自动化之前首先需要知道自己要测什么,把部分的 “点点点” 的内容。转化为代码、脚本,减轻手工测试的工作量 ,从而提高产品的质量。
    • 做 WEB 自动化与做接口自动化有一个相像的地方,那就是 WEB 自动化同样是不在于发现新的功能的问题,而是保证产品、项目在迭代与重构的过程中,原有的已经上线过的功能依旧保持正常。以及执行一些手工很难达到的测试场景目的。(比如一个快速输入的场景,想要输入几百个字符,这样的快速输入的问题就需要 WEB 自动化来实现。)
    • 还有就是在意比较大型的项目中,功能点太多的情况下,没有办法保证每一次上线发布之前通过手工的方式把这些功能都测试一遍,不太现实。不管是测试人员也好,还是开发人员也好都没有办法保证所有的功能在上线之前都能够验证完毕 。因此就需要这么一套自动化测试的方式,主要测试已经有的功能保证在每次交互的时候,已有的功能不会出现太大的问题。
    • 下图就是实现 WEB 自动化的一种方式。


    🐳 为什么要学习WEB自动化

    在真实的工作场景非 WEB 的测试,也就是接口测试,和我们 WEB 测试是互为补充的。自动化的基本原则是已接口自动化测试为主,WEB 自动化作为必要的补充。

    比较常见的需要 WEB 自动化补充的点,主要有两个方面:


    • 1、偏向于用户维度的场景测试
    • 2、验收的确认测试

    偏向于用户维度的测试,要求从用户真实的角度去测试产品的实现,只有包含了 WEB 层才能完整的验证用户的真实体验。从实现的角度来看,这一类的自动化测试用例不会覆盖的那么完善,只覆盖最基本的和核心的端到端的用户场景,所以一般情况下不使用 “WEB自动化” 测试那些步骤特别负载或者边边角角的异常场景的测试用例,这是一个方面。

    另一方面就是我们的测试逻辑和用户界面绑定在一起,无法绕过界面直接测试核心逻辑页面,在这种情况下也是不得已而为之的,在实际工作中也是最经常出现的。尤其是现在,频繁的使用微服务的情况下,服务与服务之间的交互变得比较复杂,就比较难直接通过接口一次性搞定。这样就会造成接口与接口之间的处理上存在着不稳定的因素,甚至有些处理是完全放到前端来做处理,这个时候就需要 " WEB自动化" 来进行辅助。

    说理两个方面,无论是上面说的哪种情况。都有一个共同的特征,都是从一个 最终用户 来出发,对大多数有页面的系统来说,WEB 才是最理想的集成或者说系统测试的入口。也是对于产品来说、对于用户来说、对于公司来说最最需要测试的地方,同时也可以弥补开发自测、接口上的一些不足。

    当然,我们的最终目标是服务于测试项目。取代那些重复的、枯燥的…操作,从测试进阶上的要求,将我们的技术范畴从使用什么技术去完成,变为多角度多纵深的去完成。

    学习完自动化就会发现一个事情, 接口测试好不好呢?那是相当的有效!但是呢,接口是看不到摸不着的,但是如果做 WEB 自动化框架,能跳出浏览器就简直太神了。

    同时呢,也是为了我们面试这一环节能够获得更好的待遇。

    简单来说就是以下四点:


    • 1、WEB自动化是面向用户的 “自动化”。
    • 2、可以弥补单元测试、接口测试的不足。
    • 3、取代部分重复枯燥的操作。
    • 4、功能测试岗位的进阶。

    🐳 什么样的项目适合做WEB自动化

    有了要学习 WEB自动化 的必要性并不是说我们马上就要动手去做了,还需要稍微思考一个问题,是不是所有的项目都适合做 WEB自动化?上文关于 WEB自动化 的重要性说了很多,在关于自动化测试策略的手提到 “以接口测试为主,WEB自动化进行适当的补充”。为什么说是补充,而不是使用 WEB自动化 作为主力呢?因为 WEB自动化的缺点也是很明显的。


    • 1、开发 WEB自动化 用例的成本相较于 接口自动化 要多很多
    • 2、WEB自动化不是很稳定,在页面变更、迭代过于频繁的项目中,可能页面今天是这个样子,明天又变成另外的样子了。这样的话,之前辛辛苦苦写的很多的 WEB自动化测试脚本 很有可能就会废掉,需要推翻重写。

    所以在这里,我们就来聊一聊什么样的项目能够最大程度的发挥 WEB 自动化的优势。对应前面所说的,首当其冲的就是 迭代可以很多、需要构建验证的次数也可以很多,但是尽量不要有频繁的变动,界面越稳定越好,而且项目的维护周期长,能够稳定存在。

    稳定对于自动化测试来说,非常的重要,这样能够让我们的 WEB自动化脚本 能够使用的频率更高,这样脚本的成本也就降的越低。

    如下:


    • 1、任务测试明确,不会频繁变动。
    • 2、每日构建后的频繁测试验证。
    • 3、比较频繁的回归测试。
    • 4、软件系统界面稳定,变动较少。
    • 5、软件维护周期较长。
    • 6、被测试系统开发比较规范,能够保证系统的可测试性。(前端代码太随意,测试人员两行泪。
    • 7、测试人员具备不错的编程能力。
    • 8、项目进度压力不宜太大。(这句可能有点玩笑,目前我所接触的项目压力不大的只有银行的后台项目,一条需求审批得半年。)尤其是在任务的前期,刚开始动手写的时候,尽量争取到充裕的时间去搭建框架、编写脚本等等。



    🐳 WEB 自动化面临的问题如何改进

    上面我们提到过,当遇到不稳定、难以维护的项目时,是非常不适合使用 WEB自动化 的。那么面对这个问题,要如何改进呢?

    有的公司在自动化测试领域有一个 721 规则,这个规则就是说 70% 的自动化测试工作集中在底层的接口测试和一些单元测试, 20% 的测试工作是一些集成的测试,10% 的测试工作是尽量通过 UI自动化 来实现。

    既然 WEB 自动化是需要有它的辅助作用的,那么就需要用有限的条件、有限的精力将 WEB 自动化做的更好,怎么样才能叫更好呢?就需要做到以下三点:


    • 更优秀的架构(框架)设计
    • 更合理的维护方式
    • 更稳健的测试环境

    合理的架构可以保证我们自动化测试代码的编写更加方便、简洁;维护起来更加的容易;环境操作起来更加的简单稳定。

    OKK,关于WEB自动化的介绍和一些基础理论的探讨到这里就告一段落,下一章节我们将了解一下 "软件自动化测试工具的历史与WEB自动化测试工具的选择。"



    展开全文
  • Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefox的...

    一、什么是Selenium?

    Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。

    • Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如java、python等)的形式导出成测试用例。

    • Selenium WebDriver:提供Web自动化所需的API,主要用作浏览器控制、页面元素选择和调试。不同的浏览器需要不同的WebDriver。

    • Selenium Grid:提供了在不同机器的不同浏览器上运行selenium测试的能力。

    本文将详细介绍如何运用Python结合Selenium WebDriver库搭建web自动化测试框架。

    二、自动化测试框架

    一个典型的自动化测试框架一般包括用例管理模块、自动化执行控制器、报表生成模块和log模块,这些模块相辅相成。

     

    接下来介绍各模块的逻辑单元:

    1、用例管理模块

    用例管理模块包括新增、修改、删除等操作单元,这些单元又会涉及到用例书写模式,测试数据库的管理、可复用库等。

    2、自动化控制器

    控制器是自动化用例执行的组织模块,主要是负责以什么方法执行我们的测试用例.

    3、报表生成模块

    主要负责执行用例后的生成报告,一般以HTML格式居多,信息主要是用例执行情况。另外还可以配置发送邮件功能。

    4、log模块

    主要用来记录用例执行情况,以便于高效的调查用例失败信息以及追踪用例执行情况。

    三、自动化框架的设计和实现

    1、需求分析

    首先我们的测试对象是一个web平台,基于此平台设计的框架要包含测试用例管理、测试执行控制器、测试报告以及测试日志的生成。

    2、设计和实现

    页面管理

    假设测试web对象为一个典型单页面应用,所以我们采用页面模式。页面模式是页面与测试用例之间的纽带,它将每个页面抽象成一个单独的类,为测试用例提供页面元素的定位和操作。

    BaseClass作为父类只包含driver成员变量,用来标识Selenium中的WebDriver,以便在子类中定位页面元素。LoginClass和PageClass作为子类,可以提供页面元素的定位和操作方法。比如登录页面。

     

    从页面看,需要操作的元素分别为:登录用户名、密码、下次自动登录和登录按钮。具体实现代码如下:

    页面父类BaseClass.py

     

    LoginClass继承自BaseClass,并进行登录的元素定位以及操作实现。代码中定位了username和password,并添加了设置用户名和密码的操作。

     

    公共库模块

    公共库模块是为创建测试用例服务的,主要包括常量、公共函数、日志、报告等。

    Common.py

     

    测试用例信息类用来标识测试用例,并且包括执行用例、执行结果信息,主要包括以下字段。

     

    日志主要用来记录测试用例执行步骤及产生的错误信息,不同的信息有不同的日志级别,比如Information、Warning、Critical和Debug。由于每个测试用例产生的日志条目比较少,所以在测试框架中只利用了最高级别的日志打印,即Debug级别,该级别也会将其他所有的日志级别的信息同样打印出来。在具体的实现中引用了Python标准库中的logging类库,以便更方便的控制日志输出。

    测试用例仓库

    用例仓库主要用来组织自动化测试用例。每条测试用例都被抽象成一个独立的类,并且均继承自unittest.TestCase类。 Python中的unittest库提供了丰富的测试框架支持,包括测试用例的setUp和tearDown方法,在实现用例的过程中可以重写。依托页面管理和公共库模块实现的页面方法和公共函数,每一个测试用例脚本的书写都会非常清晰简洁。

     

    从这个测试用例中,我们可以看到

    • Setup中定义了执行测试用例前的一些实例化工作
    • tearDown对执行完测试做了清理和写日志文件工作
    • 测试步骤、测试数据和测试检查点非常清晰,易修改(比如用户名密码)
    • 日志级别仅有Debug,所以写日志仅需用同一Log方法

    3、用例执行模块

    执行模块主要用来控制测试用例脚本的批量执行,形成一个测试集。用例的执行引用了Python标准库中的subprocess来执行nosetests的shell命令,从而执行给定测试用例集中的用例。测试用例集是一个简单的纯文本文件,实现过程中利用了.txt文件testcases.txt。

     

    用例前没有“#“标记的测试用例脚本会被执行,而有”#“标记的则会被忽略,这样可以很方便的控制测试集的执行,当然也可以创建不同的文件来执行不同的测试集。

    四、需要改进的模块

    对于现有实现的测试框架,已经可以满足web对象的自动化需求,但还是有些可以改进提高的地方,比如:

    • 部分用例可以尝试数据驱动。
    • 二次封装selenium的By函数,以便更高效定位元素。
    • 没有进行持续化集成。

    五、总结

    基于Selenium实现的web自动化测试框架不仅轻量级而且灵活,可以快速地开发自动化测试用例,结合本篇的框架设计和一些好的实践,希望对大家以后的web自动化框架的设计和实现有所帮助。


    下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!å¨è¿éæå¥å¾çæè¿°

    最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:779450660里面有各种软件测试资源和技术讨论)

    展开全文
  • 本视频系列与《从零开始学selenium自动化测试(基于python)》书籍相配套,两者结合起来学习,效果更加; 2. 每天2小时,1.5周即可学习完毕; 3. 结合课程(书籍中提供的)软件,多练习,多思考 课程目标: 旨在将...
  • 在本篇文章里小编给大家分享了关于python3+selenium自动化测试框架的相关知识点内容,有兴趣的朋友们学习下。
  • 二、自动化测试框架 三、自动化框架的设计和实现 四、需要改进的模块 五、总结 一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。...
  • 随着Python语言的使用...这篇文章总结了测试自动化领域,适合Web自动化框架(基于Python语言)以及它们相对于其他方面的优缺点。因此,可以帮助一些人根据需要和实际情况选择合适的的Python框架进行测试自动化
  • 目录 一、总体框架 二、PO模式、DDT数据驱动、关键字驱动 三、框架技术选择 四、框架运行结果 ...四、WEB UI自动化 3. 写业务测试用例 五、实现主程序 六、API 自动化 2.实现base_api基类 3.测试用例
  • Web测试是软件测试中比较重要的一个分支,而要实现Web自动化测试则要求测试人员能熟练掌握自动化测试工具和编程语言。介绍免费开源的Web测试工具Selenium,以及流行的编程语言Python。根据自动化测试的原理,对网页...
  • 如果在招聘网站搜索「测试工程师」的职位,95% 的招聘都会有「掌握自动化测试以及 Python」的相关要求。可以说,python 自动化已经不是加分项了,而成了面试成功的必备技能。 所以,如果你正准备入行或者转岗做...
  • 1. Web自动化测试环境如下: 脚本语言:Python 3.x 开发工具:PyCharm 自动化测试框架:Selenium 3.x 浏览器及对应驱动:Firefox(geckodriver.exe)或者Chrome(chromedriver.exe) 系统环境:windows10 2. 环境...
  • from selenium import webdriver#通过selenium框架导入webdriver驱动 from selenium.webdriver.support.select import Select import time driver = webdriver.Chrome()#网页的实例 driver.implicitly_wait(10) ...
  • Python+Appium自动化测试框架

    千次阅读 2021-12-12 15:13:53
    3.5.2 Python 关键字驱动Appium 这里我们要知道一个概念,就是多线程,App自动化和Web自动化的区别在于App自动化需要启动一个服务器,这个时候我们就要使用多线程。创建一个线程来运行appium服务器。 库:threading...
  • Python 从无到有搭建WebUI自动化测试框架

    万次阅读 多人点赞 2020-06-01 22:16:43
    目录 前言 1、Python库选择 2、分层设计 3、基础类 ...一个迭代频繁的项目,少不了自动化测试,冒烟与回归全部使用...Python搭建自动化测试框架是高级测试的人设之一 1、Python库选择 这套框架主要的Pyt.......
  • Taffy_Web Taffy自动化测试框架页面
  • 自动化测试过程中,不可缺少的一部分就是 "测试报告" 。在前面的接口自动化测试的章节,其实已经讲了一些,最终是使用 "HTMLTESTRUNNER" 生成的测试报告...今天依然用其生成一个 "WEB自动化登录Case" 的测试报告。...
  • 俗话说 “没有最好的,只有最合适的”,今天我们就Python当前使用较为频繁的4大主流自动化测试框架, 来一回比拼,从中挑选最为合适你当前项目需求的那一款。 Robot Framework Unittest Nose2 ...
  • Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。Selenium IDE:Firefox的一个...
  • 前面章节利用本地 “html” 文件的虚拟场景辅助我们了解了元素的定位、元素的操作,熟悉了正常...从这一章节开始,将对之前接口自动化测试篇章所使用的旅游网这样的一个项目,进行真实的UI自动化脚本的设计。.........
  • 5大自动化测试Python 框架

    千次阅读 2020-09-14 16:49:53
    随着该编程语言的广泛使用,基于Python自动化测试框架也应运而生,且不断发展与丰富。 因此,开发与测试人员在为手头的项目选择测试框架时,需要考虑许多方面的因素,其中包括:框架的脚本质量,测试用例的简单性...
  • 安装selenium 打开命令控制符输入:pip install -U selenium ...Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速...
  • 我们今天要安装的selenium 就是浏览器自动化测试框架,是一个用于Web应用程序的测试工具,就是模拟用户操作。支持的浏览器包括Chrome,IE,Mozilla Firefox,Safari,Opera等。今天我们以Chrome为例讲一下安装方法。...
  • 在网上或者测试行业现阶段分析了一下,python这门语言学习起来简单一些但是功能强大,最后2016年下半年决定在空余时间学习研究python+selenium,最终在年底开发出来一个可使用的基于web页面的自动化测试框架。...
  •   本文章主要会讲解Pythonweb自动化测试基础理论、webdriver环境搭建以及浏览器的一些基本常见操作等
  • 使用Python Selenium 进行自动化测试 支持在PC、H5上运行,代理获取接口数据,无头模式,生成报告(含截图),发送邮件等 快速开始 复制并修改全局配置,cp config.example.yaml config.yaml,此文件为全局配置,...
  • 今天要和大家来聊聊关于自动化测试的持续集成,通过前文的学习,我们的自动化测试框架、测试的思想已经融入到了整体的代码编写过程中了。接下里的下一步就是如何让自动化测试能够像开发一样、敏捷思想一样,能够持续...
  • webui接口是服务器与客户端交互的方式,即浏览器或者其他客户端工具与web服务UI层交互的协议.常见的有两大类,一是浏览器与服务器交互的HTTP,HTTPS协议的接口,...  1.2接口测试  webui接口测试即站在web服务程序UI

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,191
精华内容 27,276
热门标签
关键字:

pythonweb自动化测试框架