zoukankan      html  css  js  c++  java
  • appium自动化测试环境搭建

    1、需要用到的软件如下:

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

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

    3.Python:V3.7

    4.appium:1.4.16.1

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

    6.Appium-python-Client

    7.pycharm

    其中1-5是可以先下载的,6则需要在完成前面的五个步骤后才进行

    2.1、JDK

    下载地址:略

    配置环境变量:

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

    classpath值:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;

    path值:%JAVA_HOME%in;%JAVA_HOME%jrein

    .;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;是有“.”这个符号的不能漏掉

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

    2.2、SDK

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

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

    2.设置安卓环境变量

    配置环境变量,

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

    eg:添加变量名:ANDROID_HOME 变量值: D:adtsdk

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

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

    2.3、python

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

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

    2.4、node.js

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

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

    2.5、appium服务端

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

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

    appium安装好后:

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

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

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

    2.6、Appium-Python-Client

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

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

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

    import selenium

    selenium.__version__

    2.7、安装pycharm

    3、测试用例编写

    3.1、appium连接模拟器或真机

    模拟器:

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

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

     

    启动成功后

    真机:

    1、打开usb调试模式

    2、使用手机连接电脑

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

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

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

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

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

    1、连接到模拟器

    打开cmd(如果使用MuMu自带adb,则cd C:Program Files (x86)MuMuemulator emuvmonitorin)

    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连接

    2、启动Appium服务

    3.2、找到被测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.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
  • 相关阅读:
    文字无缝滚动效果,鼠标移入时暂停
    Spring中使用@Autowired注解静态实例对象
    服务器环境搭建
    nexus问题
    useUnicode=true&characterEncoding=UTF-8 的作用
    SpringBoot项目启动时自动执行指定方法
    springboot自定义消息转换器HttpMessageConverter
    kubernetes资源类别介绍
    红黑树与平衡二叉树的比较
    Feign Client的超时时间
  • 原文地址:https://www.cnblogs.com/steven223-z/p/11681338.html
Copyright © 2011-2022 走看看