Python自动化之数据驱动让你的脚本简洁10倍【推荐】


Posted in Python onJune 04, 2019

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

前言

数据驱动是一种思想,让数据和代码进行分离,比如爬虫时,我们需要分页爬取数据时,我们往往把页数 page 参数化,放在 for 循环 range 中,假如没有 range 这个自带可以生产数字序列的方法可以用,我们是不是得手动逐个添加?

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

现实场景中就存在大量这样的例子,比如我之前写的爬取上海各地区房租情况的时候,对地区进行遍历的时候,为了偷懒,我直接把这些地区的拼音全称放在了列表里,组合成各地区房源的链接。最后文章写完了,有读者反馈,少了徐汇区的统计数据。这种小数量的数据都出现了纰漏,可想而知,对于大量的数据,怎么保证数据的完整和准确性?我们需要把两者分离,数据专门储存在特定文件(比如 Excel 文件)。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

举一个小栗子:登录流程,在测试的时候,除了测试登录成功的场景,我们往往需要测到各种登录异常的场景。

写几条很常见的案例如下:

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

比如上面写了 5 条案例,数据和脚本不做分离的话,我们写自动化测试脚本需要写 5 条。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

5 条案例中,脚本都是基本一样的,只是输入框输入的数据不一样罢了。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

数据分离

我们完全可以把数据存储在 Excel 表中,我们通过循环读取 Excel 表中的数据来实现一条脚本执行多条数据。

我们先封装一个操作 Excel 文件的类,需要先安装导入包 openpyxl。

我们用这个库可以做一下功能:读取表格数据、保存执行结果。

我们先在类下写一个打开 Excel 文件的初始化方法,构造方法的作用是,当类被实例化后,会立即调用构造方法。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

读取表格数据

然后我们写一个读取 Excel 数据的方法,读取数据后返回数据列表,以便之后调用获取对应的数据,因为第 1 列数据是序号,所以直接返回第 2 列之后的数据。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

保存执行结果

实际结果和预期结果对比后,我们需要标记执行结果是 pass 或者 fail,我们需要保存结果,保存到对应的单元格中。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

我们看看我们的案例格式:

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

这样的话,我们脚本就不用写 5 条了,调用 Excel 文件的数据,循环执行案例即可,不仅逻辑清晰,还方便了后期的维护。

Python自动化之数据驱动让你的脚本简洁10倍【推荐】

这样,测试数据和脚本分离后,不同的测试数据用不同的 Excel 文件保存即可。

吃饭时或者下班时执行下测试脚本,吃完饭后或者第二天上班时,查看下 Excel 里的执行结果,有 fail 再手动看看能否复现,是不是很高效?

总结

以上所述是小编给大家介绍的Python自动化之数据驱动让你的脚本简洁10倍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python实现将excel文件转化成CSV格式
Mar 22 Python
python3.6的venv模块使用详解
Aug 01 Python
在mac下查找python包存放路径site-packages的实现方法
Nov 06 Python
Python编程深度学习计算库之numpy
Dec 28 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
python tkinter窗口最大化的实现
Jul 15 Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python中not、and和or的优先级与详细用法介绍
Nov 03 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 03 Python
pandas DataFrame索引行列的实现
Jun 04 #Python
深入浅析Python中的迭代器
Jun 04 #Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 #Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 #Python
Python批量生成幻影坦克图片实例代码
Jun 04 #Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 #Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 #Python
You might like
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
js实现烟花特效
2020/03/02 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
Python入门篇之面向对象
2014/10/20 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
python TCP包注入方式
2020/05/05 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
骨干教师培训感言
2014/01/16 职场文书
贺卡寄语大全
2014/04/11 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
违纪开除通知书
2015/04/25 职场文书
物资采购管理制度
2015/08/06 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书