zoukankan      html  css  js  c++  java
  • 6.0 实现app登录

    1.0.0:学习ui自动化准备工作

    待测app,我这里有准备两个apk,这两个都是我曾经做过的项目,后续的文章都是基于这两个app!

    链接:https://pan.baidu.com/s/1I0vR9Ejh8sK8e7PZP9ZtDw 密码:gzbt

    1.0.1:打开pycharm新建一个项目

    ,把untitled改为xuexi,  点击 create创建--你会发现你的桌面上多了一个文件!然后打开你桌面上的文件,在里面创建一个子级文件,然后把百度云下载的apk包放进去

    结果:

            然后在新建一个Test_Case的目录,这里先不建package,直接点击目录创建即可

    然后在目录下面新建一个文件Start_app_01_day

    1.0.2:获取安卓设备信息

    platformName   #设备型号  android或者ios
    platformVersion #安卓设备版本号
    deviceName #安卓设备名称
    app       #设备路径  pc电脑存放apk包的路径
    appPackage     #包名
    appActivity   #容器
    noReset        #是否重新安装app  True不重新安装
    unicodeKeyboard#是否禁用手机键盘  True禁用手机输入法
    resetKeyboard  #是否启动appium自带键盘 True开始手机输入法
    automationName   #可选模式  本教程默认 Uiautomator2
    newCommandTimeout #超时时间(s)

    platformName   :  android  即可

    platformVersion :手机的安卓版本,可以直接在手机上面看,当然也有高逼格的查询方式,后文会讲到通过py脚本去自动获取一台或者多台设备的信息!

    deviceName   :设备名称,【adb  devices】

    补充:1.如果adb devices 找不到设备,这里请自行百度,手机打开usb调试模式

              2.如果adb  devices 找到设备,但是设备离线,插拔手机,注意看手机屏幕,点击【允许】

          3.如果还是找不到设备,拔插手机注意电脑右下角是否在安装手机驱动,每款手机都几乎需要重新安装手机插件,另外如果你有清理过电脑垃圾,很有可能把驱动清理掉,所以这里需要稍微注意一下,不过这个都是小问题!

    app :  右键复制路径

     

    appPackage     #包名
    appActivity   #容器

    命令行  aapt   dump badging  %s    备注:%s 是上个步骤复制的路径

    如果输入这个报错:则找到 SDK 目录下的这个目录,随便点击一个进去复制路径,加入环境变量path

    然后重新启动cmd,再次获取即可!成功后如下图所示!

    后面的参数基本固定,记住就好!

    Start['platformName']=''    #设备型号  android或者ios
    Start['platformVersion']=''  #安卓设备版本号
    Start['deviceName']=''     #安卓设备名称
    Start['app']=''             #设备路径  pc电脑存放apk包的路径
    Start['appPackage']=''      #包名
    Start['appActivity']=''        #容器
    Start['noReset']=''           #是否重新安装app  True不重新安装
    Start['unicodeKeyboard']=''   #是否禁用手机键盘  True禁用手机输入法
    Start['resetKeyboard']=''     #是否启动appium自带键盘 True开始手机输入法
    Start['automationName']=''    #可选模式  本教程默认 Uiautomator2,支持4.4+,,
                       #如果设备是
    4.4以下改成appium,我一般自动化不考虑4.4,现在手工测试公司都不考虑4.4-了,所以针对4.4-,
                       #做是肯定可以做的,但是有那么一丢丢定位方式和4.4+有区别--所在做的时候需要判断设备安卓版本,然后切换automationName模式--
    Start['newCommandTimeout']=''  #超时时间(s)
    
    一些较为基本参数就是这些东西

    1.0.3: 下载python 第三方库! 

    a.文件-设置-项目

    点击右侧加号  下载 Appium-Python-Client,  安装即可

    温馨提示:大家会发现我的目录创建了一个 site_packages这个目录,这里大家先了解一下!

    我这里是把 默认路径下的 site-packages这个目录给拷贝过来了,

    注意:如果你在下载的库都是放在自己创建的目录下,那么后续调用方式就变为

    from site_packages.appium import   * 这个方式

    这里解释一下原因为什么要这么做:

       如果在工作当中你是一个人做自动化项目,那么你所有的库放在默认位置就好!但是往往一个自动化项目是由多名自动化测试工程师完成的,可能每个人每个模块使用的库都不一样,  就会导致别人写的脚本在他自己的环境下可以调用这个库,但是在其他人的环境下却调用不鸟,所以我们需要建立一个公共库!  所有的第三方库都存在在统一的目录下!那么无论谁的库,大家都可以直接调用!

      注:纯属个人见解,可能不需要这么做,但是我是这么做的.在默认路径下这个东西会存放一份,另外我会复制一份放到脚本目录来!

    初学者默认路径即可,下面更新的类容也是以默认路径!  后续更新到持续集成的时候,会再次补充这个点!

    1.0.4:脚本启动app

       a.打开appium ---命令行输入 appium,出现下图所示,即启动appium

     b.执行脚本

    from appium_client_jar.appium import webdriver
    
    Start={}
    
    Start['platformName']='android'    #设备型号  android或者ios
    
    Start['platformVersion']='7.1.2'  #安卓设备版本号
    
    Start['deviceName']='2905bdb6'     #安卓设备名称
    
    Start['app']=r'C:UsersAdministratorDesktopxuexiapkdeersteward_phone_2.5.1.apk'    #设备路径  pc电脑存放apk包的路径
    
    #上面的路径不推荐这种写法,但是目前先这么写!后续告诉大家正确的写法.另外这个包在模拟器上打开会报错,必须用真机操作,后续案例的包都是支持模拟器打开的!
    
    Start['appPackage']='com.yce.deerstewardphone'      #包名
    
    Start['appActivity']='com.yce.deerstewardphone.activity.SplashActivity'        #容器
    
    Start['noReset']='True'           #是否重新安装app  True不重新安装
    
    Start['unicodeKeyboard']='True'   #是否禁用手机键盘  True禁用手机输入法
    
    Start['resetKeyboard']='True'     #是否启动appium自带键盘 True开始手机输入法
    
    Start['automationName']='Uiautomator2'     #可选模式  本教程默认 Uiautomator2
    
    Start['newCommandTimeout']='400'  #超时时间(s)
    
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', Start)


    执行发现:手机安卓版本不是7.1.1,是7.1.2,然后更正即可!注:这个手机是你测试的手机版本,手机版本应该会查看吧,不会的话自行百度!

     

    设备信息填写正确之后,我们只需要盯着手机就会发现,

    1. 如果你的手机没有安装这个apk包,就会自动安装一个,
    2. 如过已经安装则会直接启动!

    原因:设备信息设置了这个:noReset        #是否重新安装app  True不重新安装

    结果:手机APP已经启动

    
    
  • 相关阅读:
    关于json中对象的删除
    JDBC操作数据库 封装好的工具类
    json <--->List集合,实体类 之间的相互转换
    java--->>发送邮件
    登陆的过滤器
    Hadoop + Spark 在CentOS下的伪分布式部署
    CentOS和ubuntu修改hostname的区别
    ubuntu 用户管理 adduser vs useradd
    hadoop2.6.1源码编译64位
    MySQL Binlog详解
  • 原文地址:https://www.cnblogs.com/pythontest/p/9477719.html
Copyright © 2011-2022 走看看