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. 选择

  1. 属性

poco(text='分享',type='android.widget.RadioButton')

  1. 遍历子代

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的更多相关文章

  1. 5分钟上手自动化测试——Airtest+Poco快速上手

    版权声明:该文章为AirtestProject原创文章:允许转载,但转载必须注明“转载”并保留原链接 前言 本文档将演示使用`AirtestProject`专用的编辑器AirtestIDE,编写`Ai ...

  2. airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告

    一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...

  3. Airtest Project的探索和使用

    Airtest使用参考博文: https://testerhome.com/topics/12391 1. 安装Python 3 2. 安装pip: 安装方法参考另外一篇随笔 pip3部署: C:\U ...

  4. 一种新的自动化 UI 测试解决方案 Airtest Project

    今天分享一个自动化UI测试工具airtest——一款网易出品的基于图像识别面向游UI测试的工具,也支持原生Android App基于元素识别的UI自动化测试.主要包含了三部分:Airtest IDE. ...

  5. Poco的介绍和入门教学

    版权声明:该文章为AirtestProject原创文章:允许转载,但转载必须注明“转载”并保留原链接 前言 前面我们已经介绍了基于图像识别的测试框架Airtest,通过图像识别,已经可以编写大部分的测 ...

  6. 使用Airtest进行UI自动化测试

    一.环境搭建 1.Airtest客户端下载 访问官网http://airtest.netease.com/,根据自己的系统下载相应的客户端安装: 2.python工具下载与环境搭建 在本地python ...

  7. 如何在iOS手机上进行自动化测试

    版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 Airtest支持iOS自动化测试,在Mac上为iOS手机部署iOS-Tagent之后,就可以使用AirtestIDE连接设备,像连 ...

  8. airtest自动化中的poco+python连接手机实现ui自动化

    airtest:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html官网地址 AirtestIDE:跨平台的UI自动化测试编 ...

  9. Airtest,Poco,Unity自动化测试集成

    作为一个Game Developer,测试部分是必不可少,程序完成需求首先要进行S0相关的测试,这样确保交付到策划验收和QA验收时是没有阻断性的bug或者显而易见代码缺陷.那么如何去做测试用例呢?肯定 ...

随机推荐

  1. [POI2005]AUT-The Bus 树状数组维护最大前缀和

    #include<cstdio> #include<algorithm> using namespace std; const int N=100000+3; int x[N] ...

  2. Aeroplane chess HDU - 4405_数学期望_逆推

    Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...

  3. 微信小程序打开PDF

    具体情况是:微信小程序打开springboot返回的pdf文件.微信端先downloadFile,然后openDocument.但是打开文档一直不成功.后来发现官网的例子没有加fileType,我在参 ...

  4. 一款 App 开发到上架

    随着互联网时代的发展,越来越多的 App 诞生啦.App 是手机软件的简称,手机主流的有 iOS.Andriod. 开发一个 App 需要哪些步骤呢?下面我和大家分享一下. 一.APP 的 idea( ...

  5. 01.Python基础-5.函数

    1 函数的介绍 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 内置函数 自定义函数 2 函数的定义和调用 2.1 函数的定义和调用 定义 def 函数名([参数]): 代码块 [ ...

  6. 《你又怎么了我错了行了吧》【Alpha】Scrum meeting 5

    第五天 日期:2019/6/18 前言: 第5次会议在女生宿舍召开 冲刺第5天,对所有工作做了总结.继续完善编码工作. 1.1 今日完成任务情况以及明天任务安排 姓名 当前阶段任务 下一阶段任务 刘 ...

  7. 2、深入学习基本结构——CNN

    这节课主要简单复习一下CNN 从图中例子,1.3共享参数,2.4共享. 要看明白以上参数. 后面就是举例了. 比如声音信号 下面是zero padding 下面是pooling 还可以有mass po ...

  8. HelloWorld编译正常运行报noclassdeffounderror

    修改环境变量classpath: 原理: classpath是搜索java类库的路径:当你输入命令“java HelloWorld“时,会根据classpath寻找HelloWorld.class:一 ...

  9. Mysql 索引-2

    关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车.对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型 ...

  10. smartctl----硬盘状态监控

    smartmontools介绍 smartmontools是一款开源的磁盘控制,监视工具,可以运行在Linux,Unix,BSD,Solaris,Mac OS,OS/2,Cygwin和Windows上 ...