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

2023-11-02

目录

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

 

二、自动化测试框架

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

 

测试用例仓库

用例仓库主要用来组织自动化测试用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • java排查一个线上死循环cpu暴涨的过程

    问题 打一个页面cpu暴涨 打开一次就涨100 一会系统就卡的不行了 排查方法 因为是线上的linux 没有用jvm监控工具rim链接上去 只好用命令排查 top cpu排序 一个java进程cpu到500 了 什么鬼 查到对应java进程
  • 通过反射获取对象的所有属性&&表格的行转对象

    获取对象的属性并赋值 获取对象的属性方法 getFields 获得某个类的所有的公共 public 的字段 包括父类中的字段 getDeclaredFields 获得某个类的所有声明的字段 即包括public private和protece
  • 【图解】ERP系统如何操作?具体步骤是什么?

    信息时代 对于企业来说 实现统筹化管理 提升办公效率 这就是管理的王道 那么 如何快速实现这一目标呢 这就离不开ERP系统的使用了 在这里 我们就以智邦国际ERP系统的基本操作为例 给大家讲述一下 1 登录系统 每个企业的员工 对计算机知识
  • Java对blob文件的保存和解析

    1 在Java中经常需要保存一个xml文件到数据中 这个时候blob是最好的选择 但是保存的时候发现可不是那么容易的 网上很多资料都是先保存一个空的数据 再一点点插入进去 InputStream in new FileInputStream
  • STM32F103系列定时器TIM2 产生多路PWM —占空比可修改

    STM32F103系列定时器TIM2 产生多路PWM 占空比可修改 一 查看手册 手册中标明 当PA0 PA3当做TIM2 PWM输出时需要打开重映射功能GPIO PinRemapConfig GPIO PartialRemap2 TIM2
  • 【转载】十进制小数转二进制小数方法

    十进制小数转二进制小数方法 十进制小数 二进制小数 方法 乘2取整 对十进制小数乘2得到的整数部分和小数部分 整数部分既是相应的二进制数码 再用2乘小数部分 之前乘后得到新的小数部分 又得到整数和小数部分 如此不断重复 直到小数部分为0或达
  • 很多人都不知道的监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法

    在实际的应用中 我们常常需要实现在移动app和浏览器中点击返回 后退 上一页等按钮实现自己的关闭页面 调整到指定页面或执行一些其它操作的 需求 那在代码中怎样监听当点击微信 支付宝 百度糯米 百度钱包等app的返回按钮或者浏览器的上一页或后
  • STM32进入Standby模式并唤醒

    项目背景 设备具备电池 电源适配器两种供电方式 实现出厂 和电池一并密封装盒 时最低功耗 即进入待机模式 到用户开始使用时需要手动磁棒唤醒 开始复位运行 在检测到设备是交流供电时 设备全速运行 检测到是电池供电时 定时采集数据 采集完毕进入
  • JS逆向:Webpack打包后的代码怎么搞?猿人学爬虫比赛第十六题详细题解

    实战地址 http match yuanrenxue com match 16 抓包分析 地址栏输入 地址 按下F12并回车 发现数据在这里 查看cookie 无加密相关的字段 请求的接口倒是有个m的加密参数 看来这题的主要目的就是 看看m
  • 高德地图测距离

    不需要引入其他 高德地图测距离 getDistance lat1 lon1 lat2 lon2 var radLat1 lat1 Math PI 180 将角度换算为弧度 var radLat2 lat2 Math PI 180 将角度换算
  • Python_观察者模式

    观察者模式 又叫发布 订阅模式 定义了一种一对多的依赖关系 让多个观察者对象同时监听一个主题对象 当这个主题对象的状态发生变化时通知所有的观察者对象 让他们自动更新自己的状态 俗话说 蚂蚁搬家蛇过道 明日必有大雨到 现在我们反过来 大雨将要
  • linux查看我的所有文件夹,Linux查看所有子文件夹及文件的数量

    find命令查看 推荐 所有子目录的数量 root localhost find afish type d wc l 158 root localhost find afish type d wc l 158 root localhost
  • Jenkins自动化部署

    Jenkins自动化部署 原理 需要环境 环境搭建 linux 配置参考 环境配置 springboot项目部署配置 1 新建文件夹 2 新建maven 项目 运行脚本 创建视图 图片上传麻烦需要的的看 pdf 原理 外链图片转存失败 源站
  • 10分钟详解Spring全家桶7大知识点

    Spring框架自2002年诞生以来一直备受开发者青睐 它包括SpringMVC SpringBoot Spring Cloud Spring Cloud Dataflow等解决方案 有人亲切的称之为 Spring 全家桶 很多研发人员把s
  • 【golang】12、gin 源码解析

    文章目录 快速使用 返回响应 路由匹配 path query Multipart Urlencoded Form 解析请求 MultipartFrom MiddleWare github com gin gonic gin 是 golang
  • 盗版网课有多猖狂?原价上万,只卖5元

    燃财经 ID rancaijing 原创 作者 孟亚娜 编辑 周昶帆 金玙璠 学而思三年全套数学课程50元 送猿辅导高一数学 需要吗 新冠肺炎疫情期间 在线教育行业火爆为头部品牌打响了知名度 相关的低价盗版课也顺水推舟 再次猖獗起来 动辄上
  • Kubernetes之配置与自定义DNS服务

    本文解释如何为kubernetes集群配置及自定义DNS服务 从kubernetes1 11版本开始 coreDNS插件被包含在GA发行版中 并且被kubeadm默认安装 详情 Configuring CoreDNS and Using C
  • 深度学习中的Epoch,Batchsize,Iterations深刻理解

    嵌牛导读 Epoch Batchsize Iterations 这三个都是深度学习训练模型时经常遇到的概念 你一定有过这样的时刻 面对这几个词傻傻分不清楚 这三个概念究竟是什么 它们又有什么区别 嵌牛鼻子 深度学习 梯度下降 Epoch B
  • IDEA 自动补全代码快捷键设置

    IDEA 自动补全代码快捷键设置 个人喜好 一 自动补全 快速生成方法返回值 gt 原始快捷键 ctrl alt v gt alt enter file gt settings gt Keymap gt Main Menu gt Refac
  • 基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)

    目录 一 什么是Selenium 二 自动化测试框架 三 自动化框架的设计和实现 四 需要改进的模块 五 总结 总结感谢每一个认真阅读我文章的人 重点 配套学习资料和视频教学 一 什么是Selenium Selenium是一个基于浏览器的自