appium自动化测试环境搭建

一、须要用到的软件以下:

1.jdk8u73windowsi586(32位的就下载32位的,64位的就下载64位的)。java

2.android-sdk_r24.4.1-windows.zip(下载这个adt-bundle-windows-x86_64-20140702)node

3.Python:V3.7python

4.appium:1.4.16.1android

5.Node.js:node-v10.16.3-x64web

6.Appium-python-Clientshell

7.pycharmnpm

其中1-5是能够先下载的,6则须要在完成前面的五个步骤后才进行windows

2.一、JDK

下载地址:略app

配置环境变量:ide

新建JAVA_HOME设置为你的安装路径(C:\Program Files (x86)\Java\jdk1.8.0_73)

classpath值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

path值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;是有“.”这个符号的不能漏掉

配置完成后,进入cmd,输入javac若是出来用法中文,说明配置正确。输入java -version查看版本

2.二、SDK

下载地址:http://www.androiddevtools.cn/

1.解压adt集成包到合适的路径下面,好比D:\SDK

2.设置安卓环境变量

配置环境变量,

设置ANDROID_HOME系统变量为你的android SDK路径,并把tools和platform-tools两个目录加入到系统的Path路径里。

eg:添加变量名:ANDROID_HOME 变量值: D:\adt\sdk

并把这句添加到 %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools记得要加上";"

配置完环境后,能够在运行cmd后输入 adb(能看到当前版本号),再输入android-h(tools目录下的,若是出来一堆文字则是能够的)

2.三、python

安装完成后将D:\python和D:\python\Scripts,添加到环境变量path下

打开cmd输入python,出现版本号,而后输入print("helloworld!")这样python就是安装好了。

2.四、node.js

进入官网地址并下载:https://nodejs.org/en/download/

下载后一路傻瓜式安装,安装完成后,运行cmd,输入node –v查看版本号,而后输入npm 

2.五、appium服务端

下载地址:https://bitbucket.org/appium/appium.app/downloads/

完整安装带UI的appium,能够从官网直接下载dmg(mac)或者zip(Windows),运行便可。

appium安装好后:

找到这个文件安装目录D:\appium\node_modules\.bin

将上面的地址添加到环境变量path下。

打开cmd,输入appium-doctor,检查环境是否OK,出现allchecks were successful,说明环境OK。

2.六、Appium-Python-Client

进入cmd 输入:pip install Appium-Python-Client。经过Python安装等待安装完成。

超时报错时,再次输入重试。

安装 Appium-Python-Client 的同时会安装一个selenium模块.试着进入python3交互命令行,而后执行下面命令:

import selenium

selenium.__version__

2.七、安装pycharm

三、测试用例编写

3.一、appium链接模拟器或真机

模拟器:

一、建立一个AVD并启动,android sdk中自带AVD Manager

二、启动appium 点击右上角的启动按钮

 

启动成功后

真机:

一、打开usb调试模式

二、使用手机链接电脑

在cmd中输入adb devices查看是否链接成功
新手可能会出现两个问题 ,一是输入adb命令时提示不是内部命令或者外部命令

那么你须要下载一个adb工具包并存放在C:\Windows\System32目录下(必须强调:与sdk中的adb工具包版本一致!!!!

二是须要打开手机的usb调试模式并安装好驱动

三、启动appium服务
在cmd命令中输入:appium

第三方模拟器:(本次以网易MuMu为例)

一、链接到模拟器

打开cmd(若是使用MuMu自带adb,则cd C:\Program Files (x86)\MuMu\emulator\nemu\vmonitor\bin\)

adb kill-server(MuMu自带:adb_server.exe kill-server)

链接模拟器端口:adb connect 127.0.0.1:7555(MuMu自带:adb_server.exe connect 127.0.0.1:7555)

列出已链接的设备:adb devices(MuMu自带:adb_server.exe devices),正常会显示MuMu的设备已链接,则能够进行下一步的操做了

注意:若是设备列表里没有显示127.0.0.1:7555设备,则可屡次尝试adb kill-server和adb connect 127.0.0.1:7555链接

二、启动Appium服务

3.二、找到被测APP的包名和Activity Name

使用adb devices命令确认链接正常

而后 打开被测APP,输入下面的命令,就会显示出APP的包名与ActivityName

本人最常使用第3条命令

     adb shell dumpsys window w | findstr \/ | findstr name=

或 adb shell dumpsys window |findstr mCurrent

或 adb shell "dumpsys window w|grep \/|grep name=|sed 's/mSurface=Surface(name=//g'|sed 's/)//g'|sed 's/ //g'"

3.三、启动UI Automator Viewer(安卓SDK自带的工具)

在SDK的安装目录下双击uiautomatorviewer.bat就能够启动,能够查看APP页面元素属性,进而定位元素,实现各类操做

4个按钮从左至右功能分别是:打开已经保存的布局,获取详细布局,获取简洁布局,保存布局

# -*- coding:utf-8 -*-
from appium import webdriver
from time import sleep
import unittest
import selenium

class MyTestCase(unittest.TestCase):
    
    @classmethod
    def setUp(self):
        print('selenium version=',selenium.__version__)
        
        desired_caps ={
        'platformName':'Android',
        'deviceName':'127.0.0.1:7555',
        'platformVersion':'6.0.1',
        'appPackage':'com.baidu.yuedu',
        'appActivity':'com.baidu.yuedu.splash.SplashActivity',
        'unicodeKeyboard':True,#绕过手机键盘操做,unicodeKeyboard是使用unicode编码方式发送字符串
        'resetKeyboard':True#绕过手机键盘操做,resetKeyboard是将键盘隐藏起来
        }
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

    def test_something(self):
        sleep(10)
        self.driver.find_element_by_name("分类").click()
        sleep(5)
        self.driver.find_element_by_name("文学艺术").click()
        sleep(5)
        self.driver.find_element_by_name("孤独是一我的的清欢").click()
        sleep(5)
        
    @classmethod
    def tearDown(self):
        sleep(3)
        print("tearDown-------")
        self.driver.quit()
        
if __name__=="__main__":
    unittest.main()
MyTestCase
相关文章
相关标签/搜索