Appium python自动化测试系列之自动化截图(十一)
11.1 截图函数的正常使用
11.1.1 截图方法
无论是在手动测试还是自动化测试中场景复现永远是一个很重要的事情,有时候一些问题可能很难复现,这个都需要测试人员对bug有很高的敏感度,在一般的情况下有一个很好的测试习惯也很重要,发现bug马上截图,不要管那么多。下面我们看一下自动化测试截图的一些方法:
1、save_screenshot(). 这个方法的用户最直接driver.save_screenshot('test.png'),他直接是获取当前屏幕的截图,然后进行保存,可能会有人有疑问,这个不能指定目录吗?当然可以,只是你需要使用另外一个截图方法,如下
2、get_screenshot_as_file(filename) 用法和上面的有一些差别,这个需要指定文件夹driver.get_screenshot_as_file('png/test.png')。
截图方法常用的是这两个,其他的使用很少,这里不做讲解,如果有兴趣的可以去了解一下一个是以二进制,一个是以base64的形式获取。
11.2 以时间戳命名错误图片
11.2.1 时间戳命名图片
可能看到这里的人会觉得不懂,为什么我们需要用时间戳来命名,其实这个并不是我们的最终目的,这里是在给大家传递一个思想,你想想在自动化测试中你每个方法都有可能错误,而且每次运行都是在不同的地方出错,那么你这个命名如果按照上面的写死,那么永远只有一张图片,其他的图片找不到了,这个不符合我们设计时的思考,所以我们需要用不同的方式去,显然时间戳是一个不错的选择,只要出错,我们就截图,而且还能保证每张图的名字不一样,是不是感觉很nb,哈哈,开玩笑。
既然是以时间戳来进行命名,那么首先我们需要有一个获取时间戳的方法,要把它封装好,因为调用这个的地方会很多,所以要进行封装。
import time
def getTime(self):
tamp = int(time.time())
return tamp
上面的方法便是我们封装的获取时间戳的方法,我这里使用了一个返回函数,每次当我们调用的时候我们就能够获取到当前的时间戳。接下来看一下在实际中我们如何将时间戳使用到截图方法中:
import time
#获取时间戳,并当作图片名字
def getTime(self):
tamp = int(time.time())
filename = '../jpg/ %s.png' %tamp
self.driver.get_screenshot_as_file(filename)
看见上面的代码是不是很简单啊,但是不知道你们思考过一个问题没,是不是怎么看怎么觉得别扭啊?接着往下看。
11.3 截图功能的封装
11.3.1 截图功能封装实战
上面的代码越来越别扭,哈哈,我也是那么觉得的,下面看一下截图功能在实际中的封装,其实和上面差不多,只是需要养成一个习惯,尽可能的将同一类功能封装到一个方法中,so,如下:
import time
#截图
def getScreenShot(self):
time = self.getTime()
filename = '../jpg/ %s.png' %time
self.driver.get_screenshot_as_file(filename) #获取时间戳
def getTime(self):
tamp = int(time.time())
return tamp
看到这个是不是稍微好一点点呢?其实这个呢只能算是入门的,那么在实际项目中我们到底是怎么进行的呢?大家下去思考一下。
我看着上面的代码模糊,总感觉这个driver哪里来的呢?是不是又忘记了呢?还记得我们return driver了么?
提示:在实际项目中我们的截图封装一般会和我们当前的case有关系,基本是按照case执行的来进行命名,那样在图片页面就能够一目了然的指导这个图片是哪个地方出错的。去动手尝试一下吧。
Appium python自动化测试系列之自动化截图(十一)的更多相关文章
- Appium python自动化测试系列之混合app实战(十一)
12.1 什么是混合App 12.1.1 混合app定义 什么是混合app,其实这个不言而喻,我们的app正常来说应该都是native的,但是实际工作中却不是,反正种种原因我们的app会有native ...
- Appium python自动化测试系列之移动自动化测试前提(一)
1.1 移动自动化测试现状 因为软件行业越来越发达,用户的接受度也在不断提高,所以对软件质量的要求也随之提高,当然这个也要分行业,但这个还是包含了大部分.因为成本.质量的变化现在对自动化测试的重视度越 ...
- Appium python自动化测试系列之appium环境搭建(二)
2.1 基础环境搭建 当我们学习新的一项技术开始基本都是从环境搭建开始,本书除了第一章节也是的,如果你连最基础的环境都没有那么我们也没必要去说太多,大概介绍一下: 1.因为appium是支持andr ...
- Appium python自动化测试系列之元素的定位(六)
6.1 常用定位方法讲解 对象定位是自动化测试中很关键的一步,也可以说是最关键的一步,毕竟你对象都没定位那么你想操作也不行.所以本章节的知识我希望大家多动手去操作,不要仅仅只是书本上的知识,毕竟这个 ...
- Appium python自动化测试系列之Capability介绍(五)
5.1 Capability介绍 5.1.1 什么是Capability 在讲capability之前大家是否还记得在讲log时给大家看过的启动时的日志?在我们的整个启动日志中会出现一些配置信息,其 ...
- Appium python自动化测试系列之认识Appium(四)
4.1界面认识 在之前安装appium的时候说过我们有两种方法安装,也就有两种结果,一种是有界面的,一种是没有界面的,首先我们先讲一下有界面的,以及界面有哪些东西. 首先看第一幅图,如果你的是win ...
- Appium python自动化测试系列之等待函数如何进行实战(九)
9.1 等待函数的使用 9.1.1 为什么要使用等待函数 我们在做自动化的时候很多时候都不是很顺利,不是因为app的问题,我们的脚本也没问题,但是很多时候都会报错,比如一个页面本来就有id为1的这个 ...
- Appium python自动化测试系列之使用HTMLTestRunner生成测试报告(十三)
13.1 测试报告概述 13.1.1 测试报告的定义 在前面章节我们已经讲了自动化基础的很多东西,如果说掌握了,而且自己动手去练习了,我相信在一些初级的面试中是没任何问题的,今天我们接触的应该算是一 ...
- Appium python自动化测试系列之Android知识讲解(三)
3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...
随机推荐
- 03_Ext_Viewport_Window_Dialog
Viewport Viewport 代表整个浏览器窗口,直接渲染到document.body节点,取代页面中的所有内容.一般作为应用程序主界面. 随着浏览器显示区域的大小自动改变,一个页面中只能有一个 ...
- Myeclipse黑色主题配置
Myeclipse自己打造黑色主题: 一.UI Theme(设置黑色主题模式): 如果是自己下载在的.jar主题,则首先将该jar包放在Myeclipse安装目录下的\dropins\plugins\ ...
- C#抓取数据、正则表达式+线程池初步运用
去年底用 多线程+HtmlAgilityPack.dll 写了一个抓取“慧聪网” 公司信息的小程序,代码惨不忍赌.好在能抓到数据,速度也能让人忍受就很久没管了. 最近这段时间把这个小程序发给同事看着玩 ...
- mongodb 与关系型数据库
设计 MongDB 模式时应注意的问题 根据用户需求来设计模式. 如果想一起使用对象,请将这些对象合并到一个文档中,否则要将它们分开(但是要确保不需要连接). 经常复制数据(但要有一定限度),因为与计 ...
- JavaScript一些常用方法一
整理以前的笔记,在学习JavaScript时候,经常会用到一些方法,但是有时忘掉了具体用法,因此记下.方便以后查阅. 这篇博文先说明这些方法的用途: splice().push().pop() .sh ...
- merge 语法解析
merge into 支持sqlserver 2008 和以上的版本 无论是INSERT还是UPDATE,从执行之间上看,MERGE INTO(MERGE)都要比直接INSERT/UPDATE的效率高 ...
- 使用 Dawn 构建 React 项目
开发一个 React 项目,通常避免不了要去配置 Webpack 和 babel 之类,以支持 commonjs 或 es 模块及各种 es 新语法,及及进行 jsx 语法的转义.当然也可以用 cre ...
- URL编码解决
与其他系统对接时遇到的问题URL中传递认证码,URL默认只允许传递ASCII码中的数据,所以浏览器默认会进行一次编码将%等特殊符号转义后台web服务器收到URL中的参数,会默认进行一次解码,但遇到的问 ...
- EXTENDED LIGHTS OUT poj1222 高斯消元法
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 6443 Accepted: 42 ...
- HDU1698 线段树(区间更新区间查询)
In the game of DotA, Pudge's meat hook is actually the most horrible thing for most of the heroes. T ...