appium+python 【Mac】UI自动化测试封装框架介绍 <四>---脚本的调试
优秀的脚本调试定位问题具备的特点:
1、方便调试。
2、运行报错后容易定位出现的问题。
3、日志的记录清晰
4、日志可被存储,一般测试结果的分析在测试之后会进行,那么日志的存储将会为后期的分析问题带来很大的便利
。。。等等
怎么调试自己写的脚本?通过什么方式进行才可确定自己写的脚本健壮性较好?
1、常见的方式,编写边调试,首先确定自己开始写的脚本语句是没有问题的。
2、出现报错时根据报错信息,新增print '***********'等调试语句,通过打印,可快速定位脚本执行到哪一步未正常执行出现中断。
3、完整的运行完一次脚本。
4、将脚本同时执行2次,确定前置条件与后置条件是否添加。
5、一般运行3次,若脚本未出现报错,则证明当前写的脚本是比较健壮的,且前后置条件给定的比较充分。
6、切记每条测试脚本执行完毕的后置条件均应添加返回到首页或者直接杀掉进程,下次重新启动,这样可保证每次执行的测试用例都是从开始执行。
查看测试报告测试用例执行失败,如何判定出现报错是什么原因导致?
常见的导致出现问题的原因为:
1、脚本写的有问题,测试中可能出现的异常未做处理。
2、测试的APP功能此时确实存在bug
3、可能由于APP的UI进行变动,未及时适配脚本导致。
如何分析到底是什么原因呢?常见的分析手段为:
1、查看出错的用例,对照用例名称,查看具体的此条用例执行的步骤是什么,优先打开APP手动去执行测试步骤,查看是否出现报错或者ui是否有变动,在此时就可以同时排查出2和3.
2、若如上的步骤1没有问题,则再次注销掉其他运行成功的脚本用例,单跑此条用例查看是否成功。若失败则在执行时认真查看具体执行到了哪一步出现了报错,根据自己打印的logging日志,逐层进行分析,针对出现的问题适配脚本。
3、如上步骤均执行完毕,且修改脚本后,重新运行此条用例3遍,确保脚本的稳定性,然后在释放已注销的用例,重新执行1次。
因此,写脚本时,日志的编写真的很重要,能很方便的帮助你定位问题。
appium+python 【Mac】UI自动化测试封装框架介绍 <四>---脚本的调试的更多相关文章
- appium+python 【Mac】UI自动化测试封装框架介绍 <二>---脚本编写(单设备)
1.单设备的执行很简单,平时可多见的是直接在config中进行配置并进行运行即可.如下: # coding=UTF- ''' Created on // @author: SYW ''' from T ...
- appium+python 【Mac】UI自动化测试封装框架介绍 <五>---脚本编写(多设备)
目的: 通过添加设备号,则自动给添加的设备分配端口,启动对应的appium服务.注意:为了方便,将共用一个配置文件. 1.公共的配置文件名称:desired_caps.yaml platformVer ...
- appium+python 【Mac】UI自动化测试封装框架介绍 <三>---脚本的执行
我自己编写的脚本框架中,所有的脚本执行均放在一个py文件中,此文件作为启动文件执行,包含了运行此文件将执行脚本.分配设备端口.自启appium服务等. 详细的介绍待后期补充.
- appium+python 【Mac】UI自动化测试封装框架介绍 <七>---脚本编写规范
脚本的使用,注释非常关键,无论自己的后期查看还是别人使用,都可以通过注释很明确的知道代码所表达的意思,明确的知道如何调用方法等等.每个团队均有不同的商定形式来写脚本,因此没有明确的要求和规范来约束.如 ...
- appium+python 【Mac】UI自动化测试封装框架流程简介 <一>
为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...
- Python爬虫教程-30-Scrapy 爬虫框架介绍
从本篇开始学习 Scrapy 爬虫框架 Python爬虫教程-30-Scrapy 爬虫框架介绍 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框 ...
- 使用appium+python做UI自动化的demo
使用appium+python做UI自动化的demo 案例使用的知乎app,下载最新的知乎apk,存在了电脑上,只需要配置本机上app目录,不需要再配置appPackage和appActivity # ...
- Appium+python移动端自动化测试-python库及pycharm安装(二)
一.安装python库 安装python库有很多种方法,如pip安装.源文件安装.运行包安装,但我们最常用的就是使用pip进行安装 Appium+python做移动端的自动化测试,所需要安装以下pyt ...
- 基于python+appium+yaml安卓UI自动化测试分享
结构介绍 之前分享过一篇安卓UI测试,但是没有实现数据与代码分离,后期维护成本较高,所以最近抽空优化了一下.不想看文章得可以直接去Github,欢迎拍砖大致结构如下: 结构.png testyam ...
随机推荐
- python微信服务号关注授权、消息推送流程
阅读目录 推送的方式: 微信推送的流程: 流程分析: 给用户推送消息功能 推送的方式: 短信推送(第三方) 邮件推送 微信推送 公众号:认证的公众号(个人的认证公众号每天只能发一篇文章),粉丝可以跟公 ...
- elasticsearch7.1.1【win】下载安装
下载:https://www.elastic.co/cn/downloads/elasticsearch 历史版本下载:https://www.elastic.co/cn/downloads/past ...
- python变量 - python基础入门(6)
何为python变量,即数据类型.python变量一共六种类型:整数/浮点数/字符串/BOOL/列表/元组/字典,今天先讲解前四种,后三种留到后面的文章在讲解. 首先讲解print() 函数,prin ...
- oracle中row_number()的用法
公司系统升级的时候需要数据迁移,遇到一个问题:新表的数据结构和旧表异构,旧表是流水号,新表是联合主键(业务号码+业务号码序号) 最后发现用窗口函数 row_number() + partition b ...
- Feign【替换默认的feign client】
说明: feign默认情况下使用的是JDK原始的URLConnection发送的HTTP请求,没有使用到连接池,但是对每个地址会保持长连接,即HTTP的persistence connection.我 ...
- python爬虫框架scrapy 豆瓣实战
Scrapy 官方介绍是 An open source and collaborative framework for extracting the data you need from websit ...
- 跟我一起学编程—《Scratch编程》第22课:颠弹力球
1. 能够熟练绘制角色和背景造型 2. 能够熟练控制角色角度.速度等 3. 能够熟练使用变量 4. 能够熟练使用循环.选择等指令控制程序 任务描述: 1. 绘制弹力小球.托板角色,背景造型. 2. 游 ...
- (七)shiro之编码/加密
一.编码/解码 使用Base64编码/解码操作 public class TestMain { public static void main(String[] args) { SecurityMan ...
- C#如何调用C++(进阶篇)
上一篇文章最后,提出的一个问题:如果一个c++库中有很多方法,需要一个个声明??这样岂不是要写很多代码??,而且没有智能提示看到提供了那些方法. 如下图: 如果有朋友需要用这种方式调用,而又不知道怎么 ...
- Java 面向对象_继承
继承 在继承的关系中,子类就是一个父类,也就是说,子类可以被当做父类看待,例如:父类是员工,子类是程序员,那么程序员就是一个员工,代码示例: // 员工类 public class Employee{ ...