A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 专注的一批 中级黑马   /  2020-7-3 16:32  /  1903 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。由.net编写,环境搭建比较麻烦。主要包含Android开发环境、appium环境、python环境的搭建

下面介绍下Python3+appium在Windows下搭建Android应用环境:

参考:上海-悠悠  https://www.cnblogs.com/yoyoketang/p/6128725.html   

一、Java环境jdk安装

    1.下载jdk包,1.6至1.8都可。根据自己的系统选择对应版本(如不会,可轻易在百度找到JDK安装配置方法)

    2.一路傻瓜式安装,注意安装路径不要有空格,不要有中文。jdk和jre不要放在一个文件夹下

    3.设置三个环境变量,我的电脑>选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”

JAVA_HOME----C:\Program Files\Java\jdk1.8.0_121” (根据自己安装路径填写)


CLASSPATH--- .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;


PATH-----;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

在path路径下加上面那两个,这里就不多说了

    4.打开cmd验证是否安装成功,输入java -version,然后输入javac

能显示版本号和下面的帮助信息说明安装成功


三、android-sdk下载安装

    sdk环境配置参考:http://www.cnblogs.com/puresoul/p/4597211.html

Android sdk下载地址:http://tools.android-studio.org/index.php/sdk/

    1.下载android-sdk,这个是做android测试和开发的必备环境,

    2.解压后,里面有个SDK manager.exe双击打开


    3.勾选你要下载的API版本和对应的android版本,后面模拟器会用到(不下载用其它模拟器也行,或者真机),然后坐等下载


四、android-sdk环境变量

    1.在系统变量新建:ANDROID_HOME,对应变量值为:D:\androidsdk\android-sdk-windows(sdk安装路径)


    2.path添加两个变量,将以下箭头所指的两个文件路径添加到path里


    3.path里面添加D:\androidsdk\android-sdk-windows\tools和D:\androidsdk\android-sdk-windows\platform-tools

五、adb环境

    1.因为adb是在D:\androidsdk\android-sdk-windows\platform-tools这个目录下的,所以上面添加了环境变量后,可以直接在cmd里面运行了。

   2.在cmd输入adb可以查看对应版本号


六、连接手机

    1.手机用数据线连电脑,如果安装了91助手或者360什么的可以先下载手机驱动,确认手机能连上

    2.打开cmd输入:adb devices,当屏幕上出现一串字符,后面显示devices说明连接成功(出现其它的提示,得检查智汇返佣https://www.kaifx.cn/broker/thinkmarkets.html自己的环境了)




到这里android的测试开发环境已经装好了.

七、Python安装

    2.下载Python安装包,选择2.7版本和3.6版本都可以

官网下载地址:https://www.python.org/15

    3.Python安装,双击傻瓜式安装(别安装在c盘哦)

    4.小编的安装目录在d盘:D:\python

    5.安装完成后,看下这个目录D:\python\Scripts,有没pip.exe和easy_install.exe(一般都有)

    6.将D:\python和D:\python\Scripts,添加到环境变量path下

    7.打开cmd输入python,出现版本号,然后输入print("hello world!")

验证环境是否搭建成功

1、appium工作原理


当我在Windows平台上,通过Python(python-client )编写了一个appium自动化脚本并执行,请求会首先到 appium.dum (Windows下的appium-Server),appium-Server通过解析,驱动Android设备来执行appium自动化脚本。

2、adb连接模拟器
别人有比较详细的教程,这里就不一一赘述了,直接贴上地址吧:https://jingyan.baidu.com/article/ed15cb1ba2b7561be2698111.html

这个步骤的时候,遇到了一个坑,cmd中输入adb devices验证是否连接成功的时候,报错:adb server version (31) doesn't match this client (36),原因是SDK的adb.exe版本与夜神模拟器中的不一致,把夜神模拟器安装目录下D:\Program Files\Nox\bin中的adb.exe删掉,把SDK的C:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools目录下的adb.exe文件拷贝过来,就可以解决了!

2、appium-client(python)与appium-server创建连接
启动appium(即appium-desktop),如图即为启动成功

编写第一个Appium用例






代码实现:



复制代码
# -*- coding: utf-8 -*-

from appium import webdriver
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.expected_conditions import NoSuchElementException


import unittest, time, os

global driver

class LoginAndroidTests(unittest.TestCase):
    def setUp(self):

        #初始化测试平台
        desired_caps={}
        desired_caps['platformName']='Android'
        desired_caps['platformVersion']='4.4.2'
        desired_caps['deviceName']='UE1'
        #老师平板
        desired_caps['appPackage']='com.uet.teacherspad'
        desired_caps['appActivity']='com.uet.teacherspad.activity.common.LauncherActivity'

        #学生平板
#        desired_caps['appPackage']='com.uet.studentpad'        
#        desired_caps['appActivity']='com.uet.studentpad.activity.LauncherActivity'

        self.driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)


    def test_login(self):
        '''登录 '''


        time.sleep(2)

        #学生登录
#        self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_username').clear()
#        self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_username').send_keys('13732650301')
#
#        self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_password').clear()
#        self.driver.find_element(By.ID,'com.uet.studentpad:id/editTxt_login_password').send_keys('123123')
#        self.driver.find_element(By.ID,'com.uet.studentpad:id/btn_login_login').click()

        #老师登录

        self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_username').clear()
        self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_username').send_keys('13732650301')

        self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_password').clear()
        self.driver.find_element(By.ID,'com.uet.teacherspad:id/editTxt_login_password').send_keys('123123')
        time.sleep(6)
        self.driver.find_element(By.ID,'com.uet.teacherspad:id/btn_login_login').click()

        time.sleep(3)

        self.driver.find_element(By.NAME,u'课堂教学').click()

        time.sleep(3)

        self.driver.find_element(By.NAME,u'课堂练习').click()

        time.sleep(3)



    def tearDown(self):
        self.driver.quit()



if __name__ == '__main__':

    unittest.main(verbosity=2)


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马