手机QQ怎么手机论坛发短视频频/小视频

前端框架(2)
这是一个系列文章,完整的合集链接:
由于testerhome/appium已更新到最新版本,故把&更新代码库部分移到Q&A中。
把标题改为&Appium开发环境搭建(1)--配置源码运行环境,同时微调了格式,以配合后续文章。
之前加入了doctorq的开源项目,今天提前配置一下testerhome/appium的源码运行环境。过程中发现有一些地方官方文档没有提到,在此分享一下配置过程。
PS:这是我的第一个贴子,有些地方写得不对或不够清晰请跟贴说明,我会立即更正。
1. 下载代码库
git clone /testerhome/appium.git
然后运行此命令时所在的目录会出现一个appium文件夹。进入文件夹:
3. 根据官方介绍配置从源码运行appium的环境(ios, android, seledroid)
参考资料:
注意:我的配置环境为Mac OS X 10.10.1。根据官方要求,配置过程中除非官方说明,否则尽量不要使用sudo命令。这里遇到的错误基本都和系统当前配置有关。可能有些人会遇到,有些人不会,请大家按照需要参考。
3.1 运行appium目录下的reset.sh&进行环境配置。
这个脚本进行了各个主要运行环境(ios, android, selendroid)的重置和更新,例如下载需要用到的npm包、安装selendroid等。
如果运行出错就加上--verbose参数再跑,看是哪里出错。
运行过程中我出现了几次错误,我把我遇到的错误信息和解决方案放在了文章末尾。大家可以参考一下(这里的信息都是用了--verbose后才会显示的).
另外,appium官方有个地方也有说明其他常见错误及解决方案:。
如果用上面的办法还是解决不了,可以去github来让appium团队帮忙寻找解决方案。
3.2 (仅针对ios)运行sudo
./bin/authorize-ios.js配置ios的认证环境(用来让ios不认为appium安装的应用有安全问题)。
$ sudo ./bin/authorize-ios.js
Enabling DevToolsSecurity
Updating security db for developer access
Granting access to built-in simulator apps
Authorization successful
3.3 使用node
.运行appium server:
info: Welcome to Appium v1.3.5 (REV c32377bdfdf69a62770)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
至此,从源码运行appium的环境完成了。此时运行的appium就是从源码运行的了。如果是debug的话,这样基本足够了。但对于开发来说,但这只是配置开发环境的第一步(官方文档里的Setting
up Appium from Source部分),后面还有Hacking
on Appium,Hacking
with Appium for iOS,&Hacking
with Appium for Android来配置开发环境,以及Running
Tests,&Running
individual tests来执行测试。后面我会根据官方文档()配置下去,如果有遇到官方文档内没有提到的问题,我会另外开贴来帮助大家处理这些问题。
更新代码库
通过Fork出来的代码库都有可能存在和源代码库不一致的情况。在此简述一下如何更新代码库。
参考资料:
$ git fetch git fetch /appium/appium.git
git fetch /appium/appium.git
remote: Counting objects: 6600, done.
remote: Compressing objects: 100% (), done.
remote: Total 6600 (delta 4470), reused 5589 (delta 3679)
Receiving objects: 100% (), 15.70 MiB | 260.00 KiB/s, done.
Resolving deltas: 100% (), done.
From /appium/appium
-& FETCH_HEAD
$ git checkout master
Warning: you are leaving 1006 commits behind, not connected to
any of your branches:
80453f6 getting rid of old ci code, use the old-travis-ci branch for reference
6c8eade Merge pull request #4526 from appium/v1.3.5-branch
a124a15 clarified garbled changelog text
634d19b fixed changelog
... and 1002 more.
If you want to keep them by creating a new branch, this may be a good time
to do so with:
git branch new_branch_name 80453f6
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git merge FETCH_HEAD
Updating 99794ad..80453f6
Fast-forward
.gitignore
.gitmodules
.jscs.json =& .jscsrc
.jshintignore
.travis.yml
CHANGELOG.txt
368 ++++-
CONTRIBUTING.md
147 +-
Gruntfile.js
create mode 100644 test/functional/selendroid/shutdown-specs.js
create mode 100644 test/functional/selendroid/webview-auto-specs.js
create mode 100644 test/helpers/sim-udid.js
create mode 100755 test/tools/prepare-tap.js
create mode 100644 test/unit/ios-device-specs.js
create mode 100644 trigger.txt
查看代码库更新情况:
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1006 commits.
(use &git push& to publish your local commits)
nothing to commit, working directory clean
注意:这里的同步仅仅更新了你的本地代码库,github上的代码库还是旧的。需要使用git
push命令才会把这个变更更新到远程代码库里。
运行./reset.sh过程出现的故障及解决方案
Error: EACCES, mkdir '/Users/hengjiechen/.npm/gulp-util/3.0.3' ``` $ ./reset.sh --verbose ./reset.sh --verbose ---- Resetting / Initializing Appium ---- RESETTING NPM * Installing new or updated
NPM modules (including devDeps) npm ERR! Darwin 14.0.0 npm ERR! argv &node& &/usr/local/bin/npm& &install& &.& npm ERR! node v0.10.36 npm ERR! npm v2.3.0 npm ERR! path /Users/hengjiechen/.npm/gulp-util/3.0.3 npm ERR! code EACCES npm ERR! errno 3
npm ERR! Error: EACCES, mkdir '/Users/hengjiechen/.npm/gulp-util/3.0.3'
npm ERR! { [Error: EACCES, mkdir '/Users/hengjiechen/.npm/gulp-util/3.0.3']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/hengjiechen/.npm/gulp-util/3.0.3',
npm ERR! parent: 'appium' }
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/hengjiechen/Develop/appiumSourceCode/appium/npm-debug.log
---- FAILURE: reset.sh exited with status 1 ----
**原因分析:**之前用管理员权限安装过npm,或者某些npm包用了管理员权限来安装。这里千万不要参照错误提示用管理员执行,否则appium就装不下去了。
**解决方案:**
卸载npm,删除`~/.npm`文件夹(部分目录没权限就用`sudo`来删),然后用`brew install npm`重新安装。安装后再运行`./reset.sh --verbose`(`brew`命令是`homebrew`的命令,提示没找到命令的请安装[homebrew]。不能用node官方安装程序来装)
Warning: Command failed: /bin/sh: mvn: command not found
RESETTING SELENDROID
Clearing out any old modified server apksCloning/updating selendroid Submodule 'submodules/selendroid' ()
registered for path 'submodules/selendroid' Cloning into 'submodules/selendroid'... remote: Counting objects: 16818, done. remote: Compressing objects: 100% (70/70), done. remote: Total 16818 (delta 20), reused 35 (delta 11) Receiving objects: 100% (),
13.76 MiB | 304.00 KiB/s, done. Resolving deltas: 100% (), done. Checking connectivity... done. Submodule path 'submodules/selendroid': checked out 'ec8f4be7ff537d2e596'Building selendroid server and supporting libraries Running &buildSelendroidServer& task Building selendroid server Getting Selendroid version Selendroid version is 0.13.0 Unable to build selendroid
server. Stdout was:
/bin/sh: mvn: command not found
Warning: Command failed: /bin/sh: mvn: command not found
Use --force to continue.
Aborted due to warnings.
---- FAILURE: reset.sh exited with status 1 ----
**原因分析**:没找到mvn命令。我没有装`maven`。
**解决方案**:参考下一个问题,使用以下命令安装`maven`
brew install homebrew/versions/maven31
sudo ln -s /usr/local/Cellar/maven31/3.1.1 /usr/local/Cellar/maven/
brew switch maven 3.1.1
Warning: Command failed: Exception in thread &pool-2-thread-1& java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State
constituent[38]: file:/usr/local/Cellar/maven/3.2.5/libexec/lib/wagon-http-shared-2.8.jar
constituent[39]: file:/usr/local/Cellar/maven/3.2.5/libexec/lib/wagon-provider-api-2.8.jar
constituent[40]: file:/usr/local/Cellar/maven/3.2.5/libexec/conf/logging/
Exception in thread &pool-2-thread-1& java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State
at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:608)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
... 5 more
Use --force to continue.
Aborted due to warnings.
---- FAILURE: reset.sh exited with status 1 ----
**原因分析**:这是安装Selendroid时出错了,错误信息表示是找不到class的声明。这个只能求助google了。
**解决方案**:google后找到&/appium/appium/issues/4490&,根据里面的解决方案使用下面命令修复:
brew install homebrew/versions/maven31
sudo ln -s /usr/local/Cellar/maven31/3.1.1 /usr/local/Cellar/maven/
brew switch maven 3.1.1
[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:generate-sources (default-generate-sources) on project android-driver-app
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:generate-sources (default-generate-sources) on project android-driver-app: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.8.2:generate-sources
failed: Invalid SDK: Platform/API level 16 not available. This command should give you all you need:
[ERROR] /Applications/adt-bundle-mac-x86_64-/sdk/tools/android update sdk --no-ui --obsolete --force
[ERROR] -& [Help 1]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]&
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :android-driver-app
Warning: Command failed: Use --force to continue.
Aborted due to warnings.
---- FAILURE: reset.sh exited with status 1 ----
**原因分析**:大致意思是没有找到Android sdk里的`Platform/API level 16`。官方文档提到配置seledroid的话需要用到level 16的API。
**解决方案**:装上level 16的API。
![](/photo/fe3196bfa8d18de749d7f5778.png)
Warning: Command failed: Feb 14, :20 PM org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector tryExecute
[INFO] Compiling 172 source files to /Users/hengjiechen/Develop/appiumSourceCode/appium/submodules/selendroid/selendroid-server/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
The system is out of resources.
Consult the following stack trace for details.
java.lang.StackOverflowError
INFO: Retrying request
Feb 14, :20 PM org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Warning: Command failed: Feb 14, :20 PM org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
Feb 14, :20 PM org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
Feb 14, :20 PM org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Feb 14, :20 PM org.apache.maven.wagon.providers.http.httpclient.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Use --force to continue.
Aborted due to warnings.
---- FAILURE: reset.sh exited with status 1 ----
**原因分析**:这个原因应该是编译器暂存空间不足导致的(StackOverflowError)。
**解决方案**:运行下面的命令加大暂存空间:
export MAVEN_OPTS=&-Xms1024m -Xmx2048m -Xss2048k&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:41776次
排名:千里之外
原创:36篇
转载:136篇
(23)(9)(11)(2)(5)(5)(9)(2)(16)(9)(4)(5)(1)(3)(13)(12)(2)(1)(14)(5)(1)(1)(2)(19)(3)作为开发人员怎么可以只使用官方发布版本的安装文件?
ps:1、学习源码前,最好需要些nodejs的基础,大概需要的深度是 ,例如express开发等。
& & &2、LZ根据开发文档进行环境配置,只谈一些自己踩过的坑。
不得不说,最新的appium源码已经很好配置,跟之前的对比简直好太多了,我想也是因为appium团队发现了环境搭建复杂对于开源代码的弊端,很多开发人员之前会因为开发环境搭建麻烦/耗时而放弃加入appium开源代码开发。
/appium/appium
可以找到appium的最新源码,好多BUG都得到了解决,例如selendroid上面的一些初始化的BUG。
以前学习 在testhome里面看到的教程很复杂,&/wiki/developingappium
并且使用的是MAC OS,环境搭建麻烦,当初整了好几天都没搞定,新源码不建议使用/参考这个教程进行环境配置。
源码已经过期了,建议想要学习的人 还是直接下载github主线/appium/appium开源的代码,毕竟testorhome的支线会有改动。
环境搭建:
最好的办法是:
先根据appium安装文件先把环境搭好。最好能跑起来。这种教程很多在这里就不浪费口舌。
特别留意的是:node最新的并且最好装对版本,32位装32的 64装64别搞混,LZ试过装错版本结果装失败的。
先找个文件夹:
git clone /appium/appium.git
然后:直接找文档咯,据前辈们说 学习源码最好的办法就是先找文档,然后appium目录下的doc文档。具体文件夹什么意思就不用我去翻译了吧。
根据文档指导,没几个单词的,建议看英文的会比较好,中文的翻译的跟SHI一样而且对不上版本。
F:\Appium\lmt\appium\docs\en\contributing-to-appium文件夹就是开发指导用的。
appium-from-source.md用notepad++打开,然后一步一步往下走。
cd appiumnpm installgulp transpile # requires gulp, see belownpm install -g authorize-ios # for ios onlyauthorize-ios
# for ios onlynode .
其中npm install时候可能需要很长时间1~2小时,但是并不需要FQ。
node .成功之后,appium启动成功。此时使用源码启动成功。
如果gulp失败,可以先进行下面的操作:
Make sure you have `ant`, `maven`, `adb` installed and added to system `PATH`, also youwould need the android-16 sdk (for Selendroid) and android-19 sdk installed.From your local repo's command prompt, install the following packages using thefollowing commands (if you didn't install `node` using Homebrew, you might haveto run `npm` with sudo privileges):
```centernpm install -g mochanpm install -g gulpnpm install -g gulp-clinpm install -g appium-doctor && appium-doctor --devnpm installgulp transpile```
几个npm install之后,gulp transpile命令应该就识别了。
此时 node .命令开启appium,若出现类似以下截图,则源码运行环境配置成功。即appium监听0.0.0.0来自任何IP的请求。
然后 先试一下给源码进行单元测试。(注意单元测试的时候,不能开启appium服务器,原因初步认为是单元测试本来就是测试源码,需要打开文件,服务器打开时文件正在被占用)
Once your system is set up and your code is up to date, you can run unit testswith:
```centergulp once```
基本功能测试:(也不用node .启动服务器,否则会占用端口而导致服务器启动失败)
gulp e2e-test```
开发环境搭建是否很简单?接下来就参考开发文档规范,开开心心进行开发提交代码吧。
阅读(...) 评论()appium ,没有源代码情况下在ios真机上如何启动应用? - 知乎12被浏览2571分享邀请回答1添加评论分享收藏感谢收起1添加评论分享收藏感谢收起更多1 个回答被折叠()与世界分享知识、经验和见解前面介绍了iOS自动化工具的Appium所需的虚拟机环境,接下来介绍下Appium的安装与使用方法,这个足足折腾我将近一个星期。网上没有什么详细的资料,对于遇到的各种各样问题也没用提供明确的解决方法。这里我贴出我的总结经验,和大家分享。
Appium提供了两种安装使用方式:图形化界面和命令行控制。无论使用哪种方式安装,以下软件都最好准备并安装完毕:
1.Xcode Command Line Tools:必须。提供Xcode的命令行调用工具,需对应OS版本和Xcode版本。可从官网上下载或着远景论坛搜索。
2.Node.js:非必须。命令行使用那一定要下载安装Node.js,官网上下载安装包即可。图形化的不确定,不过最好安装上,也不费事。
3.Mac上的Eclipse和JDK:非必须。但是如果想用Java编写appium测试用例的话,那么这些开发环境最好准备着。
使用Java的话,需要导入以下三个包,都是刻骨铭心的总结啊:
java-client-1.5.0.jar:appium官方提供的Java客户端,官网上下载:
selenium-server-standalone-2.42.2.jar:selenium官方提供的Jar包,appium会需要使用到这些类,使用selenium的最新版本搭配appium的最新版本,官网下载,非常的大,30多M
gson-2.1.jar:谷歌官方提供的json工具,运行工程时会需要用到,这个百度就能搜到。
这里我先以Appium官网提供的.dmg作为示例说明Appium用法:
安装说明:
1.首先去Appium官网上下载appium.dmg。官网地址:
需要注意Appium的版本可能跟Mac OS版本和Xcode版本有关系,像我Xcode是4.5的最新版本就经常用不起来,不过用0.13.0和1.0.0是没问题的,可以多下载几个版本试一下。
2.以我的0.13.0版本为例。先把模拟器打开,运行你想录制的程序。打开Appium以后先授权,然后作如下配置:
IP地址改为:127.0.0.1。App path选择:
/Users(用户)/你的用户名/Library(资源库)/Application Support/iPhone Simulator/你的iOS版本/Applications/你的应用编号/应用名.app
然后点击&Launch&,开启Appium。
3.Appium处于&Launch&的状态,点击右上角的那个&i&图标,开始获取Appium界面元素。
事件都在下面列着的,具体过程不细说了,需要注意的是,点模拟器上图标是没用的,没点&Record&之前点appium的图标也不会开始录制的。
4.录制脚本:点击&Record&,然后下面会蹦出一大堆代码。可以选择想用的语言,这些代码会记录你录制时操作,建议打开&XPath Only&。
5.以Java为例,把这些代码复制粘贴到工程中,就可以当做一个Junit测试用了。当然这里代码需要一定的修改,改成类似下面的就可以了。注意需要导入相应的包。如下所示:
6.运行这些测试用例要注意:保持Appium运行&Launch&之后没有跑过别的测试用例(录制的也不行,否则请Stop后再Launch),Appium处于Launch状态,模拟器打开着(没打开要打开),app path正确。
然后在Eclipse中运行Junit测试,就能看到结果了!
如果遇到了什么问题又分析不到什么原因,可以在这里留言。我尽量尽我所能回答。
然后我再说明Appium命令行的安装方法:
个人觉得一般有.app或者.exe的话,没必要使用命令行启动。
切记:在Mac上安装appium时,千万不要以sudo运行,否则appium跑不起来,还是得删了重装。
请先阅读这篇博客,避免遇上做重复无用功的事:
如果看不懂,可以先总结一下:创建一个新的普通用户,赋予这个用户使用/usr/local/下所有文件的权限(chown可实现)。或者干脆用homebrew。总之,不能以sudo的方式安装appium
1.安装Node.js。输入npm -v查看安装是否成功。
2.命令行执行npm install -g appium@你想用的版本
需要保持网络通畅,要是被GFW拦住的话需要设置registry,可参见:
如果是在公司通过代理服务器上网,那么也需要设置proxy,方法类似上面的:npm config set proxy http://.......
3.安装完毕后,命令行中运行appium应该就可以了。
不过我目前还没测试命令行具体怎么个用法,希望好心人给个例子。
Appium版本很多,由个人负责,而且不断的改进,因此难免遇到教程不适用的情况。在Mac平台上运行iOS测试是一件很折磨人的事,写这一个总结,也算是纪念一下我逝去的的青春\(╯-╰)/,同时总结,希望大家也能少走弯路,谢谢。
阅读(...) 评论()}

我要回帖

更多关于 最刺激剃短发视频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信