Python selenium自动化测试模型图解


Posted in Python onApril 15, 2020

1、线性测试

优势:每一个脚本都是完整独立的,每一个脚本对应一个测试用例

缺点:开发成本高,会有重复操作重复脚本;维护成本也高,修改重复操作的脚本时,要逐一进行修改。

2、模块化驱动测试

把重复的操作独立成公共模块,当用例执行中需要这一模块操作时调用,这样最大限度的消除重复,提高测试用例的可维护性。

解决了线性测试的两个问题:

(1)提高了开发效率

(2)简化了维护复杂性

缺点:在数据会改变的情况下,会加大编写重复的脚本(比如现在我要测试不同用户登录的场景,先是张三登录,登录完后换李四登录,然后继续换用户登录,这样会有重复的登录脚本,虽然登录的步骤一样,但是登录的数据不一样)

写一个类,将登录的函数包装起来

Python selenium自动化测试模型图解

然后写个主程序调用登录的函数

Python selenium自动化测试模型图解

3、数据驱动测试

数据驱动是数据的参数化,因为输入数据的不痛而引起输出结果的不同;比如定义的数组、字典、或者是外部文件(Excel、csv、txt、xml等)都可以看做是数据驱动,目的就是实现数据与脚本的分离。

优点:进一步增强了脚本的复用性。

(1)通过参数化来实现数据驱动

将要输入的值当做一个参数来进行传入,实现根据数据输入的不同而有不同的执行结果

登录的函数以传参的方式封装

Python selenium自动化测试模型图解

然后主方法中调用该方法,传入不同的参数

Python selenium自动化测试模型图解

(2)参数化搜索关键字

将要搜索的关键字定义为一组数组,然后通过循环的方式进行搜索,搜索的关键字不一样测试结果也不一样。

Python selenium自动化测试模型图解

(3)读取txt文件

Python中提供了几种读取txt文件的方式:

read():读取整个文件

readline():读取一行数据

readlines():读取所有行的数据

Python selenium自动化测试模型图解

Python selenium自动化测试模型图解

(4)读取csv文件

(5)读取xml文件

parse():打开xml文件

documentElement:用于得到xml文件唯一的根元素

nodeName:节点名称

nodeValue:节点值

nodeType:节点类型

ELEMENT_NODE:元素节点类型

getElementsByTagName:可以通过标签名获取标签,获取的对象以数组的形式存储

getAttribute():用于获取元素的属性值,与webdriver中的get_attribute()类似

firstChild:属性返回被选节点的第一个子节点

data:表示获取该节点的数据,与webdriver中的text方法类似

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
初步解析Python中的yield函数的用法
Apr 03 Python
Python封装shell命令实例分析
May 05 Python
详解python3中socket套接字的编码问题解决
Jul 01 Python
Python实现简单的获取图片爬虫功能示例
Jul 12 Python
Python爬豆瓣电影实例
Feb 23 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 Python
Python+PyQt5实现灭霸响指功能
May 25 Python
Python新手学习装饰器
Jun 04 Python
基于python实现可视化生成二维码工具
Jul 08 Python
Python绘图之二维图与三维图详解
Aug 04 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
python简单实现最大似然估计&scipy库的使用详解
Apr 15 #Python
Python unittest单元测试框架及断言方法
Apr 15 #Python
python 连续不等式语法糖实例
Apr 15 #Python
Python中使用socks5设置全局代理的方法示例
Apr 15 #Python
在python中求分布函数相关的包实例
Apr 15 #Python
python实现手势识别的示例(入门)
Apr 15 #Python
使用python计算三角形的斜边例子
Apr 15 #Python
You might like
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
js 模仿锚点定位的实现方法
2016/11/19 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
Python多线程编程(一):threading模块综述
2015/04/05 Python
Python如何实现文本转语音
2016/08/08 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Python库安装速度过慢解决方案
2020/07/14 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
ajax是什么及其工作原理
2012/02/08 面试题
校园招聘策划书
2014/01/09 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
软件售后服务方案
2014/05/29 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
股份转让协议书范本
2015/01/27 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL