Airtest ——poco
1. Pymysql(No module named ‘cryptography’)
pip install cryptography
pip install paramiko
把 cryptography 与pymysql 放入 airtest路径
2. 安装,卸载
方法一(原生adb):
以mac 为例,首先找到airtest adb 的路径,例如:/Applications/AirtestIDE.app/Contents/MacOS/airtest/core/android/static/adb/mac/。以下操作均为adb路径+命令(adb路径简写为adb)
1. 查看所连接的设备
os.system('adb version')
2. 查看所有包名
os.system('adb shell pm list package')
3. 安装
os.popen("adb install -r D:\BaiduYunDownload\kaoyan3.1.0.apk")
4. 卸载
os.system('adb uninstall com.fenbi.android.zenglish')
5. 启动app
def call_adb(str):
rec = os.system("/Applications/AirtestIDE.app/Contents/MacOS/airtest/core/android/static/adb/mac/adb %s" % str)
return rec
call_adb("shell dumpsys activity activities") # 找package+actity
(2) 找到cmp
(3) call_adb("shell am start -n com.fenbi.android.zenglish/com.fenbi.android.zebraenglish.activity.portal.WelcomeActivity") #package+actity
方法二:
from airtest.core.android.android import Android
command = Android()
print("当前设备:%s"% command.get_default_device())
print("uuid:%s"% command.uuid)
print("手机里所有的app:%s"% command.list_app())
print("启动app:%s"% command.start_app('com.tencent.mtt'))
print("停止app:%s"% command.stop_app('com.tencent.mtt'))
print("清除app数据:%s"% command.clear_app('com.tencent.mtt'))
print("安装app:%s"% command.install_app('/Users/zd/Downloads/zenglish-3.13.0-fenbi-test.apk'))
print("卸载app:%s"% command.uninstall_app('com.tencent.mtt'))
print("唤醒:%s"% command.wake())
print("home:%s"% command.home())
print("手机是否灭屏返回值:%s"% command.is_screenon())
print("手机里的app是否存在:%s"% command.check_app('com.tencent.mtt'))
方法三:
from airtest.core.api import *
stop_app('com.fenbi.android.zenglish')
start_app('com.fenbi.android.zenglish')
clear_app('com.fenbi.android.zenglish')
install('/Users/zd/Downloads/zenglish-3.13.0-fenbi-test.apk')
uninstall('com.fenbi.android.zenglish')
wake()
home()
1. 点击并长按
# coding=utf-8
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()
poco('btn_start').click()poco('basic').click()poco('star_single').long_click()poco('star_single').long_click(duration=5)
poco(text='分享').click()
2. 存在
obj = poco(text='分享',type='android.widget.RadioButton')
if obj.exists(): #True
print('返回Ture')
else:
print('返回False')
3. 选择
- 属性
poco(text='分享',type='android.widget.RadioButton')
- 遍历子代
rec = poco("android.view.ViewGroup").offspring("android.widget.TextView")
print('%%%%%%%%%%%s'%len(rec))
for i in range(len(rec)):
print(rec[i].get_text())
4. 获得属性
print(obj.get_text())
print(obj.attr('text'))
print(obj.attr('package'))
5. 拖动
poco('star').drag_to(poco('shell'))
6. 滑动
obj.swipe([0, 0.8],duration=3)
obj.swipe('up')
obj.swipe('down')
obj.swipe('left')
obj.swipe('right')
x,y=obj.get_position()
obj.swipe([x,y],[x*0.6,y*0.6])
6. 放大,缩小
from airtest.core.api import *
poco('android:id/content').pinch('in',percent=0.2)
poco('android:id/content').pinch('out',percent=0.2)
7. focus
listView = poco('Scroll View')
listView.focus([0.5, 0.8]).drag_to(listView.focus([0.5, 0.2]))
image.focus('center').long_click()
image.focus([0.1, 0.1]).long_click()
8. wait
# coding=utf-8
from poco.drivers.unity3d import UnityPocofrom poco.exceptions import PocoTargetTimeout
poco = UnityPoco()
bomb_count = 0
while True:
blue_fish = poco('fish_emitter').child('blue')
yellow_fish = poco('fish_emitter').child('yellow')
bomb = poco('fish_emitter').child('bomb')
fish = poco.wait_for_any([blue_fish, yellow_fish, bomb])
if fish is bomb:
# skip the bomb and count to 3 to exit
bomb_count += 1
if bomb_count > 3:
return
else:
# otherwise click the fish to collect.
fish.click()
time.sleep(2.5)
案例二:
# coding=utf-8
import timefrom poco.drivers.unity3d import UnityPoco
poco = UnityPoco()
poco(text='wait UI 2').click()
blue_fish = poco('fish_area').child('blue')
yellow_fish = poco('fish_area').child('yellow')
shark = poco('fish_area').child('black')
poco.wait_for_all([blue_fish, yellow_fish, shark])
poco('btn_back').click()
time.sleep(2.5)
9. 生成测试报告
Ctr+L
10. 关于文件导入
from airtest.core.api import *
import os
print(os.path.abspath(os.path.dirname(os.getcwd())))
ST.PROJECT_ROOT =os.path.abspath(os.path.dirname(os.getcwd()))
using("untitled.air")
from ttest import *
Airtest ——poco的更多相关文章
- 5分钟上手自动化测试——Airtest+Poco快速上手
版权声明:该文章为AirtestProject原创文章:允许转载,但转载必须注明“转载”并保留原链接 前言 本文档将演示使用`AirtestProject`专用的编辑器AirtestIDE,编写`Ai ...
- airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告
一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...
- Airtest Project的探索和使用
Airtest使用参考博文: https://testerhome.com/topics/12391 1. 安装Python 3 2. 安装pip: 安装方法参考另外一篇随笔 pip3部署: C:\U ...
- 一种新的自动化 UI 测试解决方案 Airtest Project
今天分享一个自动化UI测试工具airtest——一款网易出品的基于图像识别面向游UI测试的工具,也支持原生Android App基于元素识别的UI自动化测试.主要包含了三部分:Airtest IDE. ...
- Poco的介绍和入门教学
版权声明:该文章为AirtestProject原创文章:允许转载,但转载必须注明“转载”并保留原链接 前言 前面我们已经介绍了基于图像识别的测试框架Airtest,通过图像识别,已经可以编写大部分的测 ...
- 使用Airtest进行UI自动化测试
一.环境搭建 1.Airtest客户端下载 访问官网http://airtest.netease.com/,根据自己的系统下载相应的客户端安装: 2.python工具下载与环境搭建 在本地python ...
- 如何在iOS手机上进行自动化测试
版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连 ...
- airtest自动化中的poco+python连接手机实现ui自动化
airtest:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html官网地址 AirtestIDE:跨平台的UI自动化测试编 ...
- Airtest,Poco,Unity自动化测试集成
作为一个Game Developer,测试部分是必不可少,程序完成需求首先要进行S0相关的测试,这样确保交付到策划验收和QA验收时是没有阻断性的bug或者显而易见代码缺陷.那么如何去做测试用例呢?肯定 ...
随机推荐
- BZOJ1143: [CTSC2008]祭祀river 网络流_Floyd_最大独立集
Description 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都 会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组 ...
- 洛谷P2678 跳石头
简简单单二分答案,n和m不要写反 Code: #include<cstdio> #include<algorithm> using namespace std; const i ...
- velocity.ui2.0所有的内置动画名称
velocity升级到2.0后api发生了变化,按照原来的名称已经不能调用原来的动画效果,新的名称如下:velocity.ui2.0所有的内置动画名称 bounce flash headShake j ...
- bootstrapvalidator使用,重置校验
1.html页面需要注意的是验证字段需要用form-group包裹.需要引用相应的css和js. <form id="jobForm" role="form&quo ...
- EhCache缓存页面、局部页面和对象缓存
页面缓存:SimplePageCachingFilter web.xml <!-- 页面缓存配置,配合ehcache.xml中name为“SimplePageCachingFilter”(默认值 ...
- adb简单使用
一.基本命令 1.查看目前连接的设备/虚拟器的状态 adb devices
- C语言与java的区别
相同的地方: 1.语法类似:由于Java可以算是从C++发展而来的,因此Java与C语言的语法比较类似 2.编程的熟练程度就是对语言程序库的掌握程度: 从某种程度上来说,编程语言都是由语法和相应的程序 ...
- 【codeforces 803E】Roma and Poker
[题目链接]:http://codeforces.com/contest/803/problem/E [题意] 给你一个不完整的胜负平序列(不完整是指中间有些地方为问号,让你自己选择胜负平) 让你复原 ...
- CF914A Perfect Squares
CF914A Perfect Squares 题意翻译 给定一组有n个整数的数组a1,a2,…,an.找出这组数中的最大非完全平方数. 完全平方数是指有这样的一个数x,存在整数y,使得x=y^2y2 ...
- 请用Java设计一个Least Recently Used (LRU) 缓存
LRU介绍:LRU是Least Recently Used的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的, 思路介绍: 能够使用两个标准的数据结构来实现.Map和Queue.由于须要支持多 ...