目录

一、什么是Selenium?

二、自动化测试框架

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

四、需要改进的模块

五、总结

总结感谢每一个认真阅读我文章的人!!!

重点:配套学习资料和视频教学


一、什么是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自动化测试框架。

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+https://www.bilibili.com/video/BV1AF411T7qJ/?p=1&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75                  

二、自动化测试框架

一个典型的自动化测试框架一般包括用例管理模块、自动化执行控制器、报表生成模块和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类库,以便更方便的控制日志输出。

2023最新的Python+Web自动化测试详细教程,你想要的全都有,全套资料免费送https://www.bilibili.com/video/BV1JT411e75h/?vd_source=6e2d6c374fd551babe1ac6a5e60c5a75

测试用例仓库

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

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

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

3、用例执行模块

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

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

四、需要改进的模块

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

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

五、总结

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

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+https://www.bilibili.com/video/BV1AF411T7qJ/?p=1&vd_source=6e2d6c374fd551babe1ac6a5e60c5a75                                             

基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)相关推荐

  1. 基于python的界面自动化测试-基于Selenium+Python的web自动化测试框架

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

  2. 基于Selenium+Python的web自动化测试框架

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

  3. 基于Selenium实现的web自动化测试框架

    目录 一.什么是Selenium? 二.自动化测试框架 三.自动化框架的设计和实现 四.需要改进的模块 五.总结 一.什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供 ...

  4. 实用selenium+python实现web自动化测试

    为什么选python? 之前的菜鸟系列是基于java的,一年没学其实也忘的差不多了,目前所测的产品部分也是python写的,而且团队也在推广python,其实就测试人员来说,python也相当受欢迎. ...

  5. 基于JAVA的校园二手交易平台(附:源码 论文 数据库文件)

    开发背景 随着全世界互联网技术的不断发展,各种基于互联网技术的网络应用不断涌现,网络技术正在不断的深入人们的生活.人们从Internet上获取信息.享受生活.交流感情.网上工作等.Internet正在 ...

  6. 基于JAVA的网上购书系统(附:源码 论文 项目运行视频)

    摘要 在当今的社会中, 随着社会经济的快速发展以及计算机网络技术和通讯技术的快速成长,网络应用领域也一天天扩大,网络中的新鲜事物层出不穷.电子商务的发展增加了许多商业交易的平台,借助于这种互联网平台, ...

  7. 基于Java的在线考试系统(附:源码和课件)

    项目介绍: 本系统是一个基于java的在线考试系统.它的用户由学生.教师和系统管理员组成.学生登陆系统可以进行在线测试和成绩查询.当学生登陆时,系统会随机地为学生选取试题组成考卷.当学生提交考卷后,系 ...

  8. 实用selenium+python实现web自动化测试第八节

    本节重点: 调用js方法 · execute_script(script, *args) 在当前窗口/框架 同步执行javaScript 脚本:JavaScript的执行. *参数:适用任何JavaS ...

  9. python写web自动化_jenkins+selenium+python实现web自动化测试

    jenkins+selenium可以做到对web自动化的持续集成. Jenkins的基本操作: 一.新建视图及job 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item ...

最新文章

  1. 快速傅里叶变换Matlab示例
  2. 为什么很多招聘信息都要求三年以上的工作经验?
  3. python自动注册邮箱_[转][Python][自动登录163邮箱]
  4. leetcode 102 C++AC
  5. html如何设置鼠标选中状态,怎么用CSS 设置 当鼠标移动到菜单时,该按钮变色,鼠标点击后,页面停留在鼠标滑过时的状态!!很急!...
  6. 利用python编写祝福_手把手|教你用Python换个姿势,送狗年祝福语
  7. think in java 读书笔记 2 —— 套接字
  8. Python,Day2 - 数据类型,运算,列表操作,字典
  9. mysql insert 主键冲突_在MySql中建立存储过程和解决insert into select 中主键冲突的有关问题...
  10. Inf2Cat, signability test failed.驱动编译出错
  11. 【转】和菜鸟一起学linux之DBUS基础学习记录
  12. Python Wind量化API
  13. FlashFXP 4.2.4 破解版
  14. 一、Netflix Eureka
  15. 常用数学符号的英文读法
  16. 如何快速删除百度相关搜索中的关键词?
  17. ubuntu使用certbot给nginx添加ssl证书
  18. 幸福的前奏---三叶草的海洋
  19. 2021物联网国赛zigbee点对点通讯——G卷
  20. NXP JN5189 ZigBee 3.0开发环境搭建(续)

热门文章

  1. 卢克增加服务器,DNF官方回答:为什么不增加卢克频道?
  2. 随笔记:PPT图形布尔运算:合并形状
  3. 对图片进行高斯模糊处理的办法
  4. Meteor入门介绍
  5. java csv导出用excel打开乱码_解决Java以UTF-8导出的CSV文件用Excel打开乱码
  6. 【python 下载器】python下载电影视频电视剧
  7. 计算机中磁盘与硬盘的区别,电脑内存和硬盘的区别
  8. 剪花布条(Java)
  9. php对接百家云回放,百家云直播
  10. 软件测试CMA认证和CNAS认可分别有什么作用?