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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
Bottle框架中的装饰器类和描述符应用详解
Oct 28 Python
Python3中bytes类型转换为str类型
Sep 27 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
python实现两个字典合并,两个list合并
Dec 02 Python
python实现从wind导入数据
Dec 03 Python
python中的时区问题
Jan 14 Python
实战Python爬虫爬取酷我音乐
Apr 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
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
json格式的javascript对象用法分析
2016/07/04 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
详解Nodejs之npm&package.json
2017/06/15 NodeJs
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
详解Vue中使用Axios拦截器
2019/04/22 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Python实现命令行通讯录实例教程
2016/08/18 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python退火算法在高次方程的应用
2018/07/26 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
班长自荐书范文
2014/02/11 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js