Python自动化之数据驱动让你的脚本简洁10倍【推荐】
前言
数据驱动是一种思想,让数据和代码进行分离,比如爬虫时,我们需要分页爬取数据时,我们往往把页数 page 参数化,放在 for 循环 range 中,假如没有 range 这个自带可以生产数字序列的方法可以用,我们是不是得手动逐个添加?
现实场景中就存在大量这样的例子,比如我之前写的爬取上海各地区房租情况的时候,对地区进行遍历的时候,为了偷懒,我直接把这些地区的拼音全称放在了列表里,组合成各地区房源的链接。最后文章写完了,有读者反馈,少了徐汇区的统计数据。这种小数量的数据都出现了纰漏,可想而知,对于大量的数据,怎么保证数据的完整和准确性?我们需要把两者分离,数据专门储存在特定文件(比如 Excel 文件)。
举一个小栗子:登录流程,在测试的时候,除了测试登录成功的场景,我们往往需要测到各种登录异常的场景。
写几条很常见的案例如下:
比如上面写了 5 条案例,数据和脚本不做分离的话,我们写自动化测试脚本需要写 5 条。
5 条案例中,脚本都是基本一样的,只是输入框输入的数据不一样罢了。
数据分离
我们完全可以把数据存储在 Excel 表中,我们通过循环读取 Excel 表中的数据来实现一条脚本执行多条数据。
我们先封装一个操作 Excel 文件的类,需要先安装导入包 openpyxl。
我们用这个库可以做一下功能:读取表格数据、保存执行结果。
我们先在类下写一个打开 Excel 文件的初始化方法,构造方法的作用是,当类被实例化后,会立即调用构造方法。
读取表格数据
然后我们写一个读取 Excel 数据的方法,读取数据后返回数据列表,以便之后调用获取对应的数据,因为第 1 列数据是序号,所以直接返回第 2 列之后的数据。
保存执行结果
实际结果和预期结果对比后,我们需要标记执行结果是 pass 或者 fail,我们需要保存结果,保存到对应的单元格中。
我们看看我们的案例格式:
这样的话,我们脚本就不用写 5 条了,调用 Excel 文件的数据,循环执行案例即可,不仅逻辑清晰,还方便了后期的维护。
这样,测试数据和脚本分离后,不同的测试数据用不同的 Excel 文件保存即可。
吃饭时或者下班时执行下测试脚本,吃完饭后或者第二天上班时,查看下 Excel 里的执行结果,有 fail 再手动看看能否复现,是不是很高效?
总结
以上所述是小编给大家介绍的Python自动化之数据驱动让你的脚本简洁10倍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关推荐
-
利用Python如何实现数据驱动的接口自动化测试
前言 大家在接口测试的过程中,很多时候会用到对CSV的读取操作,本文主要说明Python3对CSV的写入和读取.下面话不多说了,来一起看看详细的介绍吧. 1.需求 某API,GET方法,token,mobile,email三个参数 token为必填项 mobile,email 必填其中1项 mobile为手机号,email为email格式 2.方案 针对上面的API,在做接口测试时,需要的测试用例动辄会多达10+, 这个时候采用数据驱动的方式将共性的内容写入配置文件或许会更合适. 这里考虑把AP
-
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作.分享给大家供大家参考,具体如下: 一.pyautogui模块简要说明 ## 使用 pyautogui 模块相关函数,可以模拟鼠标及键盘操作, 完整说明文档见: http://pyautogui.readthedocs.org/ # pip install pyautogui # 要注意的是,模拟移动鼠标与击键可能太快,导致其他程序跟不上,并且程序可能失去控制, # 需要掌握如何从问题中恢复,至少要能中止它. # 防止或
-
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
本文实例讲述了Python PyAutoGUI模块控制鼠标和键盘实现自动化任务.分享给大家供大家参考,具体如下: PyAutoGUI是用Python写的一个模块,使用它可以控制鼠标和键盘. 利用它可以实现自动化任务,再也不用担心有重复枯燥的任务了. pyautogui模块的功能: 移动鼠标.点击左右键和滚轮 发送虚拟按键 # 安装pyautogui 这个模块支持Windows, Mac OS X 和 Linux. 根据系统不同,你可能需要安装一些依赖. Linux系统(Debian系列): $
-
selenium+python实现自动化登录的方法
Selenium Python 提供了一个简单的API 便于我们使用 Selenium WebDriver编写 功能/验收测试. 通过Selenium Python的API,你可以直观地使用所有的 Selenium WebDriver 功能 .Selenium Python提供了一个很方便的接口来驱动 Selenium WebDriver , 例如Firefox.Chrome.Ie,以及Remote,目前支持的python版本有2.7或3.2以上. selenium 可以自动化测试.抢票.爬虫等
-
python ddt实现数据驱动
ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据. @data(a,b) 那么a和b各运行一次用例 @data([a,d],[c,d]) 如果没有@unpack,那么[a,b]当成一个参数传入用例运行 如果有@unpack,那么[a,b]被分解
-
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
前言 数据驱动是一种思想,让数据和代码进行分离,比如爬虫时,我们需要分页爬取数据时,我们往往把页数 page 参数化,放在 for 循环 range 中,假如没有 range 这个自带可以生产数字序列的方法可以用,我们是不是得手动逐个添加? 现实场景中就存在大量这样的例子,比如我之前写的爬取上海各地区房租情况的时候,对地区进行遍历的时候,为了偷懒,我直接把这些地区的拼音全称放在了列表里,组合成各地区房源的链接.最后文章写完了,有读者反馈,少了徐汇区的统计数据.这种小数量的数据都出现了纰漏,可想而
-
Python自动化导出zabbix数据并发邮件脚本
Zabbix没有报表导出的功能,于是通过编写脚本导出zabbix数据并发邮件.效果如下: 下面是脚本,可根据自己的具体情况修改: #!/usr/bin/python` `#coding:utf-8` `import MySQLdb` `import time,datetime` `import xlsxwriter` `import smtplib` `from` `email.mime.text import MIMEText` `from` `email.mime.multipart imp
-
python自动化脚本安装指定版本python环境详解
一般情况下编译安装python环境需要执行以下步骤: 下载源码包 解压源码包 安装配置 编译以及编译安装 TALK IS CHEAP, SHOW YOU MY CODE. #!/usr/bin/python #coding:utf-8 ''' date:9/2/17 18:03 PM author:lockey email:lockey@123.com desc:python自动化安装用户指定版本的python环境 ''' #导入Python的系统编程操作模块 import os #导入用来处理
-
python自动化测试之DDT数据驱动的实现代码
时隔已久,再次冒烟,自动化测试工作仍在继续,自动化测试中的数据驱动技术尤为重要,不然咋去实现数据分离呢,对吧,这里就简单介绍下与传统unittest自动化测试框架匹配的DDT数据驱动技术. 话不多说,先撸一波源码,其实整体代码并不多 # -*- coding: utf-8 -*- # This file is a part of DDT (https://github.com/txels/ddt) # Copyright 2012-2015 Carles Barrobés and DDT con
-
详解基于Android的Appium+Python自动化脚本编写
1.Appium Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序. 通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码. 下面开始Appium的配置. appPackage和APPActivity的获取 任意下载一个app 解压 但是解压出来的xml文件可能是乱码,所以我们需要反编译文件. 逆向AndroidMan
-
Python接口自动化浅析数据驱动原理
在上一篇Python接口自动化测试系列文章:Python接口自动化浅析登录接口测试实战,主要介绍接口概念.接口用例设计及登录接口测试实战. 以下主要介绍使用openpyxl模块操作excel及结合ddt实现数据驱动. 在此之前,我们已经实现了用unittest框架编写测试用例,实现了请求接口的封装,这样虽然已经可以完成接口的自动化测试,但是其复用性并不高. 我们看到每个方法(测试用例)的代码几乎是一模一样的,试想一下,在我们的测试场景中, 一个登录接口有可能会有十几条到几十条测试用例,如果每组数
-
Selenium+Python自动化脚本环境搭建的全过程
目录 一.Python环境搭建 1.下载安装包 2.验证是否安装成功.以及是否有pip 3.安装Selenium libraries 二.安装谷歌浏览器和WebDriver 1.安装谷歌浏览器 2.下载WebDriver 3.配置环境变量 4.验证WebDriver是否安装成功 三. 完结 *本文仅介绍环境的搭建,不包含任何脚本编写教程. 先整体说一下需要用到工具 1.Python环境(包括pip) 2.谷歌浏览器(包括对应的WebDriver) 详细步骤: 一.Python环境搭建 1.下载安
-
Python自动化短视频生成脚本实现热门视频流水线生产
目录 一.核心功能设计 二.实现步骤 1. 图片爬取 2. 图片统一格式大小 3. 视频合成 4. 截取背景音乐 5. 视频和背景音乐合并 一.核心功能设计 首先我看了网上那些视频营销号的视频,大多数都是围绕一个主题通过几张图片进行视频轮播展示并添加一些热门歌曲作为背景音乐. 知道了大概的思路,接下来我们可以通过以下几步进行实现: 通过关键字进行图片批量爬取 对爬取的图片进行筛选并批量进行大小resize统一 将统一大小的图片进行视频合成 根据选取的歌曲,截取合适的背景音乐 将视频和截取的背景音
-
4个的Python自动化脚本分享
目录 1.将 PDF 转换为音频文件 2.从列表中播放随机音乐 3.不再有书签了 4.清理下载文件夹 前言: 大家平时有没有注意到你每天可能会执行许多的重复的任务,例如阅读 pdf.播放音乐.打开书签.清理文件夹等等. 我将分享4个实用的python的自动化脚本,无需手动一次又一次地完成这些任务,非常方便. 1.将 PDF 转换为音频文件 脚本可以将 pdf 转换为音频文件,原理也很简单,首先用 PyPDF 提取 pdf 中的文本,然后用 Pyttsx3 将文本转语音.关于文本转语音,你还可以看
-
6个实用的Python自动化脚本详解
目录 1.将 PDF 转换为音频文件 2.从列表中播放随机音乐 3.不再有书签了 4.智能天气信息 5.长网址变短网址 6.清理下载文件夹 每天你都可能会执行许多重复的任务,例如阅读 pdf.播放音乐.查看天气.打开书签.清理文件夹等等,使用自动化脚本,就无需手动一次又一次地完成这些任务,非常方便.而在某种程度上,Python 就是自动化的代名词.今天分享 6 个非常有用的 Python 自动化脚本. 1.将 PDF 转换为音频文件 脚本可以将 pdf 转换为音频文件,原理也很简单,首先用 Py
随机推荐
- Swift教程之枚举类型详解
- C# DataGridView添加新行的2个方法
- JavaScript设置首页和收藏页面的小例子
- java swing标准对话框具体实现
- Oracle ORA-22908(NULL表值的参考)异常分析与解决方法
- Python使用dis模块把Python反编译为字节码的用法详解
- JavaScript原生编写《飞机大战坦克》游戏完整实例
- PHP单元测试利器 PHPUNIT深入用法(三)第1/2页
- PHP中的递归正则使用说明
- 比较有效的使用C#读取文件的代码
- asp实现的7xi音乐网的采集源代码
- C语言中const与指针使用方法总结
- Mysql DBA 20天速成教程
- 一个批量编码转换及ASP/JS加解密/简繁转换的工具
- java中使用session监听实现同帐号登录限制、登录人数限制
- jquery 日期控件datepicker属性详细解析
- 实例讲解Python中global语句下全局变量的值的修改
- AspNetPager分页控件 存储过程
- js获取当前路径的简单示例代码
- js获取div高度的代码