多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

如何在Win10上搭建Appium自动化测试环境

更新时间:2022-06-23 09:18:29 作者:多测师 浏览:66

  以前都是在mac机器上搭建环境,觉得好麻烦,自己还曾今写了个脚本来一键搭建。现在在win10上搭建,发现开始很容易,也会有一些坑。把这些坑都记录下来,也许将来可以翻翻。

如何在Win10上搭建Appium自动化测试环境

  先去看看最新的版本是啥。打开官网http://appium.io有点慢,耐心等待。

  安装最新版本

  用一条命令就可以安装了。

  cnpm install -g appium #安装最新版本

  cnpm install [email]appium@1.7.2[/email] -g #安装指定版本

  安装appium-doctor

  appium-doctor可以检测Appium整体依赖环境配置情况。在cmd下输入以下命令就可以安装:

  Cnpm install -g appium-doctor #检查安装情况

  安装完appium-doctor 环境之后,可以通过 appium-doctor 看到如下提示说明安装成功。

  安装Appium-Python-Client

  Appium的实用方法都在Client的源码里,对于driver和webelement实例,均有对应的元素查找方法(webelement查找的是下面的子元素),有些儿专门针对手机的函数,则需要在这个Client安装后方可使用。

  Appium为了实现自己的find查找方式,首先自定义了一个MobileBy类,给这个类对象塞入了它定义的一些扩展属性,这些属性的值会通过webdriver协议推送到server端去识别和执行,

  为了让这些属性运用到find方法中,appium很好地继承和扩展了webdriver.Remote,然后通过调用driver实例的find_element和find_elements两个核心方法实现元素查找。

  所以,既然是扩展,appiumdriver实例可以使用seleniumdriver的所有关于元素查找的实例方法。

  Pip install Appium-Python-Client

  安装Appium-desktop

  去官网下载安装,这个东西可以用来定位元素用。装好以后就是这样的。

  准备一个模拟器,我这里用的是Genymotion, 前面文章里面已经写了秘诀,可是当我安装测试apk的时候。

  搜索了一下,看来是要装插件,然后费了好大力气,找到这个资源

  https://github.com/m9rco/Genymotion_ARM_Translation

  重启模拟器,解决问题。

  回到前面的appium desktop那里,点击启动server按钮。

  然后出现一个黑的页面,点击放大镜,就可以去inspect页面了。

  别蒙,当你不会的时候,官方文档就是最好的老师。

  去这里能找到你想要的一切

  http://appium.io/docs/en/about-appium/api/

  根据自己情况修改platformVersion(系统版本号),deviceName(设备名字),appPackage(包名),appActivity(启动页面),app(apk包在电脑的位置)

  然后启动server,发现报错:

  selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command

  查看日志,发现问题在这里。

  If you wish to use that automation instead of UiAutomator2, please add 'automationName=UiAutomator1' to your desired capabilities。

  所以,在添加参数的时候加上参数 automationName=UiAutomator1。结果成功解决问题。

  再启动还是报错,说启动不了app,看来不是包名,就是activity搞错了。

  获取包名:

  adb shell pm list packages -3

  如果使用adb shell dumpsys window | findstr mCurrentFocus 命令查看当前运行的包名和Activity更清晰一些。

  获取当前activity

  打开需要获取的APP,运行一下命令即可

  adb shell dumpsys window | findstr mCurrentFocus

  获取设备信息:

  Adb devices

  Adb shell getpro

  现在启动就对了。

  就可以抓到元素了。

  简单写个demo, 这个是最简单的方式。

  from appium import webdriver

  from time import sleep

  desired_caps = {}

  desired_caps['platformName'] = 'Android'

  desired_caps['platformVersion'] = '8.0.0'

  desired_caps['deviceName'] = '192.168.250.101:5555'

  desired_caps['appPackage'] = 'com.core'

  desired_caps['appActivity'] = 'com.core.ui.screens.activity.LoginActivity'

  desired_caps['automationName'] = 'UiAutomator1'

  desired_caps['noReset'] = 'true'

  driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

  def log_in(username, password):

  username_txt_id = "txtName"

  password_txt_id = "txtPwd"

  login_btn_id = "btnLogin"

  username_input = driver.find_element_by_id(username_txt_id)

  username_input.clear()

  username_input.send_keys(username)

  password_input = driver.find_element_by_id(password_txt_id)

  password_input.clear()

  password_input.send_keys(password)

  sleep(3)

  login_btn = driver.find_element_by_id(login_btn_id)

  login_btn.click()

  if __name__ == '__main__':

  log_in('stest163394', '1')

  运行起来,就跑起来了。代码可以加工完善一下,做成一个框架,然后往里面填东西。

  以上内容为大家介绍了如何在Win10上搭建Appium自动化测试环境,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部