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 相关文章推荐
mac下pycharm设置python版本的图文教程
Jun 13 Python
python连接mongodb密码认证实例
Oct 16 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python 表格打印代码实例解析
Oct 12 Python
Python中包的用法及安装
Feb 11 Python
Python实现自动访问网页的例子
Feb 21 Python
python梯度下降算法的实现
Feb 24 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
使用TensorBoard进行超参数优化的实现
Jul 06 Python
举例讲解Python装饰器
Dec 24 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 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面向对象法则
2012/02/23 PHP
基于php-fpm的配置详解
2013/06/03 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
php通过Chianz.com获取IP地址与地区的方法
2015/01/14 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
简单的Python2.7编程初学经验总结
2015/04/01 Python
详解Python中的循环语句的用法
2015/04/09 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
对numpy中轴与维度的理解
2018/04/18 Python
python调用外部程序的实操步骤
2019/03/04 Python
Flask框架学习笔记之模板操作实例详解
2019/08/15 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python构造函数init实例方法解析
2020/01/19 Python
民族团结好少年事迹材料
2014/08/19 职场文书
班级活动总结格式
2014/08/30 职场文书
对照检查剖析材料
2014/09/30 职场文书
2014年库房工作总结
2014/11/26 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
职称评定个人总结
2015/03/05 职场文书
公司财务部岗位职责
2015/04/14 职场文书
罚款通知怎么写
2015/04/22 职场文书
爱的教育读书笔记
2015/06/26 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
Golang bufio详细讲解
2022/04/21 Golang