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中使用SimpleParse模块进行解析的教程
Apr 11 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
解决python "No module named pip" 的问题
Oct 13 Python
Django 路由控制的实现
Jul 17 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
python高级特性简介
Aug 13 Python
浅析Python 字符编码与文件处理
Sep 24 Python
python mongo 向数据中的数组类型新增数据操作
Dec 05 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
Python可变参数函数用法实例
2015/07/07 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Django实现文件上传下载功能
2019/10/06 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
Python之Sklearn使用入门教程
2021/02/19 Python
房屋租赁协议书范本
2014/04/10 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
捐书活动总结
2014/05/04 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
《三国志》赏析
2019/08/27 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL