美文网首页
自动化测试的一次尝试

自动化测试的一次尝试

作者: 匠人plus | 来源:发表于2019-12-12 16:36 被阅读0次

    看到网上各种自动化测试攻略,对此也略感兴趣,花时间研究了一下,该攻略仅供学习参考。请不要用于非法用途。

    首先提供一个apk安装包,我是直接从应用宝下载的,大家可以放心使用。

    通过adb install apk安装此版本今日头条
    链接:https://pan.baidu.com/s/1zlLZXZt_gbKQ_WJ95kdsjw
    提取码:tb6h
    复制这段内容后打开百度网盘手机App,操作更方便哦

    安装python环境,我本地是2.x的环境,安装pip工具包,pocoui模块,等依赖库,

    如果安装超时可以切换国内镜像进行安装
    常用镜像:
      阿里云 http://mirrors.aliyun.com/pypi/simple/
      中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
      豆瓣(douban) http://pypi.douban.com/simple/
      清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
      中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

    命令
    pip install -i 镜像地址 --default-timeout=100 库名
    安装好之后运行以下代码就可以

    # encoding: utf-8
    
    import os
    from datetime import datetime
    import time
    from airtest.core.api import connect_device
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    
    
    
    """
    1准备参数,启动指定app
    """
    
    PackageName = 'com.ss.android.article.news'
    SplashActivityName = 'com.ss.android.article.news.activity.SplashActivity'
    
    print("PackageName:"+PackageName)
    print("SplashActivityName:"+SplashActivityName)
    
    def start_my_app(package_name, activity_name):
        """
        打开应用
        adb shell am start -n com.tencent.mm/.ui.LauncherUI
        """
        try:
            os.popen('adb shell am start -n %s/%s' % (package_name, activity_name))
        except  Exception as e:
            print(e)
    
    start_my_app(PackageName, SplashActivityName)
    
    """
    2.准备加载pocoui模块,连接android设备
    请先执行pip install pocoui安装pocoui模块
    如果下载超时执行pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pocoui
    安装完成之后执行以下代码。 
    如果adb 始终连不上设备,请关闭(最好卸载)各种手机助手,重新尝试
    如果模拟器端口不是默认端口,需要指定连接
    dev = connect_device('Android://<adbhost[localhost]>:<adbport[5037]>/<serialno>')
    poco = AndroidUiautomationPoco(dev)
    serialno可以通过adb devices获取
    """
    poco = AndroidUiautomationPoco()
    """
    延时跳过广告
    """
    time.sleep(10)
    
    """
    2跳过广告
    """
    
    """
    myDelayTime = 0
    def timer(n):
        while (bool(myDelayTime<10)):
            global myDelayTime
            myDelayTime+=n
            print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
            time.sleep(n)
            print("AppGoInHome:"+activity)
            
    
    timer(5)
    
    """
    
    
    
    """
    3模拟屏幕操作
    需要知道app指定按钮的id,windows可以通过安装airtest查看,安卓手机安装开发助手也可以
    """
    
    
    l_elements = poco(PackageName+':id/b3u')
    def onclcik():
        if not l_elements.exists():
            print('btn not exist')
            return
        print('to click btn')
        
        l_elements.click()
        print('swipe  list')
        poco.swipe([0.5, 0.8], [0.5, 0.3], duration=0.2)
        
    onclcik()
    
    
    def test():
        back = poco(PackageName+':id/a2')
        if back.exists():
            print("has back")
            back.click()
            
        select_tag = poco(PackageName+':id/ah9')
        
        if select_tag.exists():
            print("has select_tag")
            select_tag.click()
    
    test()
    
    
    VID_20191212_165032.gif

    相关文章

      网友评论

          本文标题:自动化测试的一次尝试

          本文链接:https://www.haomeiwen.com/subject/ucktnctx.html