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

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

本篇主要讲:

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

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

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

@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楼 已删除
金主 #12 · 2017年09月02日 Author

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

有梦人 回复

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

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

金主 #15 · 2017年09月04日 Author

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

就要评论,以资鼓励

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

金主 #17 · 2017年09月15日 Author

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

金主 回复

我就看到了 “嘿嘿嘿”

牛叉,金主厉害。

匿名 #10 · 2017年09月29日

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

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

金主 #22 · 2017年09月29日 Author

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

匿名 #23 · 2017年09月29日
恒温 回复

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

匿名 #24 · 2017年09月29日
金主 回复

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

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

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

simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 20:49
simple [精彩盘点] TesterHome 社区 2018 年 度精华帖 中提及了此贴 01月07日 12:08

大佬怎么解决的😂 求告知! 谢谢!

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