Selenium WebDriver + python 自动化测试框架

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

 目标

  组内任何人都可以进行自动化测试用例的编写

  完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤、检查点,然后执行自动化工程,即可执行功能自动化测试用例,包括测试结果、测试报告。

  任何一台安装了JDK环境的windows机器都可以直接运行,不必考虑运行环境的问题。

  整理了一下目前使用的自动化测试框架,基于Selenium WebDriver + python,关键字驱动,简单总结一下。

自动化工程:

 

driver 目录            ----浏览器驱动(支持chrome、IE浏览器)

data目录                     ----上传场景使用的图片(具体业务相关)

Picture目录               ----测试用例失败截图

TestCase_UI.exe                 ----主程序(使用pyinstaller打包发布)

Test.xls                         ----测试用例(重点关注) 

测试用例(***.xls文件)

包括4个sheet分页,详情如下:

1、PageElements 分页

 

模块:具体的测试业务模块

页面元素:页面具体操作的元素

例如“我的工作台-搜索输入框”,“我的工作台”就是模块名称,“搜索输入框”就是需要操作的元素

关键字:指的是元素的操作方式

例如文本输入框封装的关键字是input,按钮是click,断言是assert,这个是封装在自动化测试工程中的

页面定位元素:元素定位方式,支持8种定位方式:id、class、name、link…xpath、css

页面元素定位表达式:

         例如//*[@id='tip_about_info']/div[2]/span,采用xpath定位

如下的元素(输入框),关键字-input、页面定位元素-id、页面元素定位表达式- plantformSearchInput

二级定位:页面包含多个iframe 时,采用二级定位的方式进行页面元素定位

2、TestConfig 分页

     配置信息

 

Driver:根据填写的数据启动不同的浏览器,支持chrome、IE

URL:测试网址

PageElements:根据填写的数据,读取数据源,支持excel、py

**Report:测试报告的标题,可以定制

3、TestSuite 分页

每行数据表示一个测试用例

 

测试用例序号:唯一,不能重复

测试用例描述:说明该条测试用例的目的

前置条件:方便用户维护用例,可以为空

操作步骤:同上

预期结果:同上

是否执行:执行标识,yes执行、no不执行

测试结果:测试用例执行结果

4、TestSteps 分页

      测试用例的执行步骤

  1、2、3行为登录操作,填写用户名、密码,不用修改

 

测试用例序号:对应TestSuite分页的测试用例序号,一个测试用例多个步骤,测试用例序号相同

测试模块:业务模块

测试用例步骤描述:对应PageElements分页的“页面元素”列

操作值:主要是文本输入框输入的数据

检查点:测试步骤的检查点,一条用例可包含多个检查点

测试结果:用例步骤执行成功、用例步骤执行失败

         一个用例存在多个测试步骤,任意步骤执行失败,不在执行剩下的步骤,直接执行下个测试用例,失败的步骤填写“用例步骤执行失败”

页面截图:用例步骤执行失败的步骤截图

Sheet页面对应关系说明:

TestSuite 分页的测试用例序号对应TestSteps 分页的测试用例序号

 

PageElements 分页的测试步骤描述对应TestSteps 分页的测试步骤描述

 

自动化用例执行过程

         命令行中直接输入自动化测试工程文件的名称,即可开始测试用例执行,打印具体测试过程。

 

用例报告

         用例执行完成,在report目录中生成html格式的报告,方便jenkins持续集成使用

 

报告内容如下(可定制)

 

查看执行结果

TestSuite 分页

 

TestSteps 分页

 

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/491145.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人健康|个人健康管理小程序|基于微信小程序的个人健康管理系统设计与实现(源码+数据库+文档)

个人健康管理小程序目录 目录 基于微信小程序的个人健康管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)用户信息管理 (2)运动教程管理 (3)公告…

自考《计算机网络原理》考前冲刺

常考选择填空 1、计算机网络的定义:计算机网络是互连的、自治的计算机的集合。 2、协议的定义:协议是网络通信实体之间在数据交换过程中需要遵循的规则或约定 3、协议的3个要素 (1) 语法:定义实体之间交换信息的格式与结构,或…

[树形DP] 树的最大独立集

题目 这个挺简单的&#xff0c;注意状态转移时&#xff0c;如果选这个点&#xff0c;那么它的子结点状态应该为不选&#xff0c;如果这个点的状态是不选&#xff0c;那么可以在它的子结点里选择&#xff1a;选/不选两个状态&#xff0c;所以最后结果是max挑选。 #include<b…

创作纪念日:记录我的成长与收获

机缘 一开始是在我深入学习前端知识的Vue.js框架遇到了一个问题&#xff0c;怎么都解决不了&#xff0c;心烦意乱地来csdn上找解决方法。开心的是真被我找到了&#xff0c;真的很感恩&#xff0c;也意识到在这个平台上分享自己的经验是多么有意义的事情&#xff0c;可能随便的…

Android Gradle 开发与应用 (一) : Gradle基础

1. Gradle是什么 Gradle是一个通用的构建工具&#xff0c;支持诸多主要的 IDE&#xff0c;包括 Android Studio、IntelliJ IDEA、Visual Studio 等 Gradle 的底层实现(核心引擎和框架)其实是用 Java 编写的开发者通常使用 Groovy 或 Kotlin 来编写构建脚本 1.1 那么为什么Gra…

QC七大工具

目录 1、检查表&#xff1a; 2、层别法&#xff1a; 3、柏拉图&#xff1a; 4、因果图&#xff1a; 5、散布图&#xff1a; 6、直方图&#xff1a; 7、控制图&#xff1a; QC是英文Quality Control的简称&#xff0c;中文意思是质量控制。在ISO9000:2015对质量管理&…

2-23 switch、JVM内存模型、垃圾回收机制、this、static、变量的分类

文章目录 switch 实现成绩评级JVM内存模型概念栈的特点堆的特点 垃圾回收机制通用的分代垃圾回收机制三种清理算法垃圾回收过程垃圾回收常见的两种检测引用算法内存泄露常见原因 this的用法创建对象的四步 static 静态特点 变量的分类和作用域import switch 实现成绩评级 switc…

golang通过http访问外部网址

不同项目之前,通过http访问,进行数据沟通 先设定一个接口,确认外部能访问到 PHP写一个接口 public function ceshi_return() {$data $this->request->param();$id $data[id];$res Db::name(user)->field(id,status,price,name)->where([id>$id])->find…

JSTL标签

JSTL标签 一、什么是JSTL标签&#xff1a; 随着J2EE瘦客户机技术JavaServer Pages(JSP)在过去几年中的流行&#xff0c;开发人员已经创建了许多自定义的JSP标记库。虽然很多标记库是为实现不同目标的而编写的&#xff0c;但它们往往也对迭代、条件及其它通用操作都提供了类似…

dolphinscheduler单机版部署教程

文章目录 前言一、安装准备1. 安装条件2. 安装jdk3. 安装MySQL 二、安装dolphinscheduler1. 下载并解压dolphinscheduler2. 修改配置文件2.1 修改 dolphinscheduler_env.sh 文件2.2 修改 application.yaml 文件 3. 配置mysql数据源3.1 修改MySQL安全策略3.2 查看数据库3.3 创建…

wpf 简单实验 数据更新 列表更新

1.概要 1.1 需求 一个列表提供添加修改删除的功能&#xff0c;添加和修改的内容都来自一个输入框 1.2 要点 DisplayMemberPath"Zhi"列表.ItemsSource datalist;(列表.SelectedItem ! null)(列表.SelectedItem as A).Zhi 内容.Text;datalist.Remove((列表.Selec…

JDK8新特性全解析:Java8变革之旅

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …