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

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

本篇主要讲:

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

安装

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

    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
  7. 安装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

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

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

27cc8a

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

279879

仰望高端玩家

10611
104seveniruby 回复

年底分红是啥?

104
10611sindynasty 回复

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

10611
104seveniruby 回复

搜嘎

C2674d

我用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楼 已删除
27cc8a
JinZhu · #12 · 2017年09月02日 作者

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

7549
C2674dDreamer1986 回复

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

503ffd

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

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

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

7c499e

就要评论,以资鼓励

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

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

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

2562
27cc8aJinZhu 回复

我就看到了“嘿嘿嘿”

1263

牛叉,金主厉害。

69ae3c

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

110
69ae3cpliue 回复

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

27cc8a
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里面也会有打印😁

69ae3c
110Lihuazhang 回复

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

69ae3c
27cc8aJinZhu 回复

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

27cc8a JinZhu Mac 下 uiautomator 的安装配置 中提及了此贴 10月23日 13:47
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册