zoukankan      html  css  js  c++  java
  • [python]Appium+python +pytest 实现APP自动化,基于安卓

    1.安卓环境搭建

    &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装、启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人)

    &目前appium环境搭建我还是比较喜欢根据虫师写的,搭建app自动化,之前搭过几次基本没啥问题而且也给出了下载链接 https://www.cnblogs.com/fnng/p/4540731.html

    1.1https://nodejs.org/ 下载windows msi文件安装下一步到最后即可(node.js 6.4之前的,不然和下面appium版本冲突)

    1.2http://pan.baidu.com/s/1jGvAISu 下载appium 目前以AppiumForWindows_1_4_0_0.zip版本搭建,下载后解决下一步到最后即可

    1.3下载sdk   http://dl.google.com/android/android-sdk_r23.0.2-windows.zip   解压后配置环境变量

    ANDROID_HOME 

    %:androidandroid-sdk-windows

    path

    %ANDROID_HOME%platform-tools;%ANDROID_HOME% ools;

    1.4下载platform-tools

    http://www.androiddevtools.cn/

    1.5 appium放到环境变量里

    C:Program Files (x86)Appium ode_modules.bin放入path

    2.0安装--注意点

    &需要注意,如果appium安装的是1.4.0,那么node.js最好小于6.4.0不然会版本冲突

    & 安装  pip  install appium-python-client

    3.真机运行

    &手机连接电脑--打开 开发者模式--usb调试-

    在cmd下查看手机id,我的查询到是 WJX7N17A17001123

    adb devices

    &命令启动Appium,CMD下输入下面的命令

    ip,端口可定义

    -U后面写手机的id

     appium -a 127.0.0.1 -p 4723  –U  WJX7N17A17001123 --no-reset 

    4.测试脚本,打开app

    &需要获取先获取被测APP的appPackage和appActivity两个参数

    先把apk放在电脑上

    cmd-执行自己的apk目录

    aapt dump badging E:apkcom.eg.android.AlipayGphone.apk 
    注意~
    sdk下载,可下载最新的,真机运行也需要,不然可能会报错 找不到build-tools

    下载sdk源,有可能报错,自定义一个新的sdk库更新--mirrors.neusoft.edu.cn 端口80

    脚本调试
    # coding:utf-8
    from appium import webdriver
    import os
    import time
    
    
    def setUpa():
    
    desired_caps['appActivity']='com.cardinfolink.yunshouyin.activity.SplashActivity'
     
    
            desired_caps = {}
            desired_caps['platformName'] = 'Android'  # 设备系统
            # desired_caps['platformVersion'] = '7.0'  # 设备系统版本
            desired_caps['deviceName'] = 'WJX7N17A17001123'  # 设备名称
    
            desired_caps['appPackage']='com.eg.android.AlipayGphone'  #上面提到获取的参数
    
            desired_caps['appActivity']='com.eg.android.AlipayGphone.AlipayLogin'  #上面说到获取的参数
    
            driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
            time.sleep(2)
            driver.find_element_by_id('com.alipay.android.phone.openplatform:id/saoyisao_iv').click()  #操作和web自动化方法几乎一致
            time.sleep(2)
            driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='com.alipay.android.phone.openplatform:id/saomafu_iv']").click()
    
            driver.quit()
    

     这样一个demo就写完了~ 下面就靠自己设计自动化框架封装的实现 拉~   这个暂时不说了

    5.0模拟器运行

    基于上面,模拟器需要的版本以下载,现在需要创建一个模拟器配置参考下虫师的即可

    打开模拟器,adb devices 查看是否连接  连接了直接运行脚本需要改下deviceName即可

    6.0脚本参数化,简单思路

    &参考web自动化的参数化封装关键字即可
    注意点,
    Appium启动服务和关闭服务可以做成bat处理,然后python调用即可

    #写下来似乎和pytest没啥关系,其实参考下pytest实现web自动化,都是一样的操作:https://www.cnblogs.com/Jack-cx/p/9357680.html
    #我觉得如果公司主业务不是移动的,不建议做持续集成,必要性不大,甚至不要做app的ui自动化,以接口自动化/性能为主


    
    
     
    
    


     
     
  • 相关阅读:
    分布式解决方案的收集
    一天带你入门到放弃vue.js(三)
    一天带你入门到放弃vue.js(二)
    一天带你入门到放弃vue.js(一)
    JDK配置环境变量不成功的原因
    蚂蚁课堂(每特学院)-2期
    Java 使用blob对H5视频播放进行加密《java视频加密》
    Java 实现视频下载功能
    高并发与高可用实战之基础知识大型网站架构特征(一)
    Java线程池实现原理之自定义线程池(一)
  • 原文地址:https://www.cnblogs.com/Jack-cx/p/9358477.html
Copyright © 2011-2022 走看看