[python]Appium+python +pytest 实现APP自动化,基于安卓

1.安卓环境搭建

&关于app自动化,我的以为安装过程比较复杂,脚本难度实现和web自动化差很少封装关键字便可,所以,下面会写安装、启动APP以及过程当中遇到的一些坑(这一篇偏向解释给我的)html

&目前appium环境搭建我仍是比较喜欢根据虫师写的,搭建app自动化,以前搭过几回基本没啥问题并且也给出了下载连接 http://www.javashuo.com/article/p-ohnzgtia-bx.htmlnode

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

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

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

ANDROID_HOME windows

%:\android\android-sdk-windowsapp

path框架

%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;性能

1.4下载platform-tools测试

http://www.androiddevtools.cn/

1.5 appium放到环境变量里

C:\Program Files (x86)\Appium\node_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:\apk\com.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自动化,以接口自动化/性能为主
相关文章
相关标签/搜索