Appium appium+python+jenkins 一套自动化测试框架搭建 (一)

JinZhu · 2017年08月30日 · 最后由 Hiboy 回复于 2017年12月28日 · 1709 次阅读
本帖已被设为精华帖!
大家好,我叫金主,一个集美貌与才华于一身的女子,从今天开始分享我的第一篇干货,有问题请多多指教哈!😝

本篇主要讲:

appium框架的搭建与真机环境配置

安装

  1. brew install node 想要生效首先必须先安装homebrew,检查自己是否已经安装homebrew,在终端中输入 brew -v ,如果出现版本信息则说明已经安装,如果提示命令不存在则说明未安装, 安装homebrew的方法如下(记得打开一下xcode): /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装完成后在终端输入 brew -v 命令检查是否安装正确,出现版本信息说明安装成功
  2. 在终端输入 brew install node 命令安装node.js 安装完成后在终端输入 node -v 命令检查是否安装成功,出现版本信息说明安装成功。
  3. 使用npm的国内镜像安装appium,执行npm install -g appium ,或者 Appium官网下载:https://bitbucket.org/appium/appium.app/downloads/。 使用命令安装会卡在 Downloading Selendroid,解决方案参考链接:https://testerhome.com/topics/7136
  4. 安装appium-doctor,执行npm install appium-doctor -g,再运行下 appium-doctor ,检查自己的各种环境变量是否配置成功
  5. 在终端输入 appium& 即可启动appium,在这里多说一句,直接输入 appium 也可以启动appium,只是加个&可以显示appium的pid,而不加则不会显示
  6. 参考链接:http://www.cnblogs.com/candiceli/p/4572426.html 参考链接:http://blog.sina.com.cn/s/blog_53f023270102vbb8.html
  7. 接下来我们来配置安卓的环境

    1. 获取JAVA_HOME变量的路径: /usr/libexec/java_home [-V]
    2. 打开.bash_profile文件 : open -e .bash_profile
    3. 输入内容jdk变量配置内容: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home #jdk安装路径 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    4. 输入SDK变量配置内容: export ANDROID_HOME=/Users/macbook/Library/Android/sdk export PATH=${PATH}:${ANDROID_HOME}/tools export PATH=${PATH}:${ANDROID_HOME}/platform-tools
  8. 安装appium遇到的报错问题解决
    参考链接:http://m.blog.csdn.net/u010359778/article/details/73608651

    appium Could not detect Mac OS X Version from sw_vers output: '10.12.3 ' 异常处理

    1. 打开终端执行: $ grep -rl "Could not detect Mac OS X Version from sw_vers output:" /Applications/Appium.app/ 结果如下: /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/build/lib/system.js /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/lib/system.js /Applications/Appium.app//Contents/Resources/node_modules/appium-support/build/lib/system.js /Applications/Appium.app//Contents/Resources/node_modules/appium-support/lib/system.js
    2. 然后逐步进入相应的文件修改: $ vi /Applications/Appium.app//Contents/Resources/node_modules/appium/node_modules/appium-support/build/lib/system.js 文件打开如下: case 10: _arr = ['10.8', '10.9', '10.10', '10.11']; _i = 0;
    3. 点击 键盘 ‘i’ 进入编辑模式 修改成: case 10: _arr = ['10.8', '10.9', '10.10', '10.11','10.12']; _i = 0; 点击 esc 键 输入 :wq 保存退出 其他三个文件按相同方式修改即可

环境布置

安卓真机配置图

获取安卓设备序列号: adb get-serialno
获取安卓系统版本:
adb shell
cat /system/build.prop

查看:
ro.build.version.release=4.1.2 系统版本
ro.product.model=GT-I9305 型号
ro.product.brand=samsung 品牌
iOS真机配置图

条件:
app必须得通过Xcode签名认证,app为debug模式下。并将真机的开发者模式下的enable UI Automator 开关打开才可以

获取ios的bundleld: ideviceinstaller -l -o list_user
获取ios的udid: idevice_id -l
获取ios的型号: ideviceinfo -k ProductType
获取ios的系统版本: ideviceinfo -k ProductVersion
获取ios的手机名称: ideviceinfo -k DeviceName
补充:
mac安装以下内容:
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller

appium原理:http://www.360doc.com/content/15/0116/16/19991581_441329673.shtml
官网介绍:http://appium.io/slate/en/master/?python#appium
大神blog:http://blog.csdn.net/zhubaitian/article/details/39753945

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 23 条回复 时间 点赞
seveniruby 将本帖设为了精华贴 08月31日 09:35

给你加精激励下,不错的入门科普。凭借精华帖可以领社区的年底分红了

@seveniruby 嘿嘿嘿,我会继续努力😝

仰望高端玩家

seveniruby 回复

年底分红是啥?

sindynasty 回复

社区年底会给所有人发微信红包,根据精华帖和登录社区的频次进行分级发放。

我用ideviceinstaller的时候报 Could not connect to lockdownd. Exiting.
我升级xcode到8.3.3,然后做了以下操作
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller
这个问题依然发生,大家有遇到过吗?

我Mac的版本是10.12.3,连接的iphone的系统分别是8.4和10.3.3

据说ideviceinstaller只在9上工作,难道是真的吗?

11楼 已删除
JinZhu #12 · 2017年09月02日 作者

@Dreamer1986 不是真的,解决啦吗?

Dreamer1986 回复

sudo chmod -R 777 /var/db/lockdown/ 试试

楼主,能不能告诉下ios的自动化搭建环境怎么弄呢?求助大神

JinZhu #15 · 2017年09月04日 作者

@aiyanyuan 我上面教程不是介绍了么

就要评论,以资鼓励

—— 来自TesterHome官方 安卓客户端

JinZhu #17 · 2017年09月15日 作者

@MNicholas 哈哈哈哈,感谢支持😝

JinZhu 回复

我就看到了“嘿嘿嘿”

牛叉,金主厉害。

楼主 问个问题 请问下appium给wda发送请求的代码在哪个js里面呀 我现在自己用java模拟向wda发送http请求 遇到中文的就是乱码

pliue 回复

看下 https://github.com/appium/appium-xcuitest-driver 这个库。基本上就是 wda 在 ios 设备中启动,然后 iproxy 从 mac 端通过 usb 和 ios 端的 wda 打通。

JinZhu #22 · 2017年09月29日 作者

@pliue 这个js在你安装的appium目录下面,路径为:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Inspector/js/,另外,appium log里面也会有打印😁

Lihuazhang 回复

我知道是这个库 但是没找到具体是哪个js里面的 有点着急 大神

JinZhu 回复

这个里面是也是发送给appium的请求 我想知道appium发给wda的请求 因为我模拟的 发送的中文wda接受到的是乱码 大神

JinZhu Mac 下 uiautomator 的安装配置 中提及了此贴 10月23日 13:47

跑一个用例的平均时间是多少?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册