Mac搭建appium环境及python运行代码示例

 Appium主要是通过调用安卓提供的接口来执行命令的,所以需要安装Java和安卓SDK。

  1.安装Appium服务端

  appium的服务端是基于node的,直接使用npm(node包管理器)安装即可,比较简单。

 npm install -g appium

2.安装Python客户端

 pip install Appium-Python-Client

 同样直接使用pip安装即可。

  3.安装Java环境

brew tap AdoptOpenJDK/openjdk
  brew install adoptopenjdk8

配置环境变量:

JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
   CLASS_PATH="$JAVA_HOME/lib"
   PATH=".$PATH:$JAVA_HOME/bin"
   export PATH=/usr/local/bin:$PATH

  4.安装安卓SDK

brew install --cask android-platform-tools

 配置环境变量:

export ANDROID_HOME=/Users/xxx/Library/Android/sdk

其中xxx为用户名。 完成之后,将安卓手机连接到电脑,注意手机的开发者权限之类的全部开启。 然后执行 adb devices,可以显示设备,则安装成功。

  其实通过brew安装的软件默认在命令行是可以直接打开不用配置环境变量的,因为brew设置了软链接,但是appium的服务无法读取到,所以上面还是需要配置一下。

  5.连接测试

  根据上面的配置之后,环境基本安装完毕,下面来测试一下,首先启动appium服务端。 命令行执行:appium,出现欢迎界面则没有问题。 主要是测试一下 Appium Inspector,这个是Appium提供的查看手机app元素以及其它功能的桌面软件,可以大大提升开发效率。 下载打开这个软件,远程主机、端口、路径都使用默认不填即可,主要填一下右下角的 JSON Representation:

'platformName': 'Android', # 被测手机是安卓 
  'automationName' : 'UiAutomator2',
  'appPackage': 'tv.danmaku.bili', # 启动APP Package名称 
  'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称 
  'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True 
  'resetKeyboard': True, # 执行完程序恢复原来输入法 
  'noReset': True, # 不要重置App 'newCommandTimeout': 6000, 

 

填上最前面的platformName和automationName就可以,其它都是选配。

  6.python代码测试

  执行官网的python示例代码:

 import unittest
  from appium import webdriver
  from appium.options.android import UiAutomator2Options
  from appium.webdriver.common.appiumby import AppiumBy
  capabilities = dict(
      platformName="Android",
      automationName="uiautomator2",
      deviceName="Android",
      appPackage="com.android.settings",
      appActivity=".Settings",
  )
  appium_server_url = "http://localhost:4723"
  class TestAppium(unittest.TestCase):
      def setUp(self) -> None:
          self.driver = webdriver.Remote(
              appium_server_url,
              options=UiAutomator2Options().load_capabilities(capabilities),
          )
      def tearDown(self) -> None:
          if self.driver:
              self.driver.quit()
      def test_find_battery(self) -> None:
          el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="电池"]')
          el.click()
  if __name__ == "__main__":
      unittest.main()

  成功则表示正常连接。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值