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中的包和模块实例
Nov 22 Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 Python
Python处理文本换行符实例代码
Feb 03 Python
Python理解递归的方法总结
Jan 28 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
python plotly绘制直方图实例详解
Jul 22 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
python字符串判断密码强弱
Mar 18 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python实现经典排序算法的示例代码
Feb 07 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中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
jQuery创建插件的代码分析
2011/04/14 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
javascript常用方法汇总
2014/12/02 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
python实现自动登录
2018/09/17 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
python实现任意位置文件分割的实例
2018/12/14 Python
python的依赖管理的实现
2019/05/14 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Python中的self用法详解
2019/08/06 Python
python中下标和切片的使用方法解析
2019/08/27 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python zip()函数的使用示例
2020/09/23 Python
毕业生求职简历的自我评价
2013/10/23 职场文书
创先争优制度
2014/01/21 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
生产助理岗位职责
2014/06/18 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书