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实现微信模板消息
Dec 21 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
python获取中文字符串长度的方法
Nov 14 Python
python绘制简单彩虹图
Nov 19 Python
python3实现名片管理系统
Nov 29 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
python 多维高斯分布数据生成方式
Dec 09 Python
Python matplotlib实时画图案例
Apr 23 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
python中if及if-else如何使用
Jun 02 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 Python
python 模拟在天空中放风筝的示例代码
Apr 21 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
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
jQuery 方法大全方便学习参考
2010/02/25 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
python进阶教程之模块(module)介绍
2014/08/30 Python
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
Django自定义分页效果
2017/06/27 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
使用python模拟命令行终端的示例
2019/08/13 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
最新大学生自我评价
2013/09/24 职场文书
校庆筹备方案
2014/03/30 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
多人股份制合作协议书
2016/03/19 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers