版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途 今天我们来学习1个非常有趣的 下文的例子中用到的demo可以在我们官网上下载到(链接:https://poco.readthedocs.io/en/latest/source/doc/poco-example/index.html)。 默认情况下,在IDE执行测试脚本的时候,log查看窗口会打印出所有等级的日志信息,包含 如果你不想这些非报错的日志信息过多占据log查看窗的位置,并且干扰到你提取有效的报错日志;你可以在脚本代码开头加上 对日志信息等级的设定: 在这里我们主要用到设置输出日志的等级这个方法,仅输出日志等级为[DEBUG]的日志信息: 可以看到,把输出日志信息的级别改成 很多新手在使用 比如大家最常见的:“远程主机强迫关闭了一个现有的连接”、“socket connection broken”等等。 最正确的顺序是:先连接设备(一般在 所以下次写 python给我们提供了多个循环方法,比如while循环、for循环等,还有个特别一点的循环叫嵌套循环,可以让我们在while循环里面使用for循环。 在我们之前的推文“1篇文章带你了解poco的所有基本功能”中,我们有简单介绍如何遍历元素,那时候用的就是for循环: 今天我们写一个嵌套循环,当游戏得分小于100分时,就继续把星星拖动到贝壳上,并打印当前分数,当游戏得分大于或等于100分时,就终止循环,并打印最终游戏得分: 我们还是利用 我们可以设置一个变量 最终log查看窗打印的部分结果如下: 也生成了3分独立的测试报告: 这里有一点需要特别注意下,就是在每一次执行完脚本之后,我们需要把设备恢复到原始状态: 如果想获取今天示例的完整代码,童鞋们可以在直接在AirtestProject公众号回复关键词“循环”。 另外本次示例中没有考虑到出现报错,程序终止执行的情况,实际上我们也应该把这部分的内容考虑进去。 之前我们也教过大家很多捕捉报错让程序继续执行的方法,可以使用 Airtest官网:https://airtest.netease.com/
此文章来源于项目官方公众号:“AirtestProject”前言
poco
实例。在这个示例中,我们将学习到以下小知识:
1.过滤非报错的log信息
[DEBUG]
、[INFO]
、[WARNING]
和 [ERROR]
等等。__author__ = "Airtest" import logging logger = logging.getLogger("airtest") logger.setLevel(logging.ERROR)
logging
模块是 Python
内置的标准模块,主要用于输出运行日志。它还可以设置输出日志的等级、日志保存路径、日志文件回滚等。[ERROR]
以后,整个脚本运行过程中只有少量初始化信息输出,更方便查看报错信息。2.如何安排连接设备、初始化poco和打开应用的脚本顺序
poco
的时候,都容易把连接设备、初始化 poco
和打开应用的脚本顺序搞乱,导致出现一大堆奇妙的报错。auto_setup
接口里面连接)–> 再打开应用(一般用 start_app
接口)–> 等应用开启完毕,最后才初始化 poco
。# -*- encoding=utf8 -*- __author__ = "Airtest" from airtest.core.api import * # 连接设备 auto_setup(__file__,logdir=True,devices=["Android://127.0.0.1:5037/emulator-5554?cap_method=JAVACAP"]) #启动应用 start_app("com.NetEase") sleep(6.0) # 初始化poco from poco.drivers.unity3d import UnityPoco poco = UnityPoco() poco("btn_start").click()
poco
脚本的时候,千万记住要检查下这几条代码的顺序,避免产生不必要的报错。3.多次执行某个测试动作
for star in poco("playDragAndDrop").child("star"): star.drag_to(poco("shell"))
# 循环执行某个动作 while int(poco("scoreVal").get_text()) < 100: for star in poco("playDragAndDrop").child("star"): star.drag_to(poco("shell")) print("当前得分:"+poco("scoreVal").get_text()) else: print("游戏结束,最终得分:"+poco("scoreVal").get_text()) print("这是第"+str(a)+"次执行脚本")
else:
下面的代码是不满足循环条件时执行的动作。4.多次执行脚本并生成多个测试报告
while循环
,重复执行3次完整的脚本内容,并依次生成 log1.html
、log2.html
和 log3.html
。实现思路大致如下:a = 1 while a < 4: # 执行完整的脚本内容 pass # 生成报告 from airtest.report.report import simple_report simple_report(__file__,logpath=True,output="log"+str(a)+".html") a = a + 1
a
,每执行一次脚本,变量 a
的值就 +1
,直到 a=4
,即脚本重复执行了3次以后,循环条件不再满足,程序结束循环。# 回到首页并清理应用 keyevent("HOME") clear_app("com.NetEase")
5.小结
try catch
、try except
、try finally
等等。大家可以动手试一试,把报错这部分的内容也添加到你的测试脚本中去~
Airtest教程官网:https://airtest.doc.io.netease.com/
搭建企业私有云服务:https://airlab.163.com/b2b
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算