移动自动化测试:appium的用法 (appium usage)

访问量: 3182

很是惭愧, appium的文档的入门可读性太差了。  全都是写给专家看的。各种概念,API, 函数解释的非常明白。

可是我就是不知道如何把它们串起来。(跟tishadow , angular有的一拼。。。难道是策略问题?)

今天终于放弃了官方文档,google了下,看到这位兄弟跟我一样啊:(http://automatium.blogspot.com/2013/06/how-to-use-appium-inspector.html)

appium.app (appium GUI) 的官方文档狠给力:  https://github.com/appium/appium-dot-app

前提: 

必须有个MAC 

步骤:

1. 下载appium.app, 安装之

2. 运行之, 会发现桌面右上角多了个图标。右键之,发现只有一个菜单: start server.  它就是appium的 server控制开关。

那么appium 的client 怎么办? 如何使用 appium 的inspector? (就好像 selenium用到的firebug/f12中的inspector?)

答: 还记得。。。(大明湖畔的)  android中的 apk吗? ios中对应的是 ipa, 

其实,还有个重要的概念:  app!   这是ios的文件! 给模拟器使用的

选中它。

3. start server . 会看到 appium GUI的操作界面

屏幕快照 2015 04 27 上午9.13.09

4. 打开 inspector (点击 放大镜图标。)

发现错误:  

info: <-- GET /wd/hub/status 200 6.971 ms - 104 {"status":0,"value":{"build":{"version":"1.3.7","revision":"72fbfaa116d3d9f6a862600ee99cf02f6d0e2182"}}}

info: --> GET /wd/hub/sessions {}

info: [debug] Responding to client with success: {"status":0,"value":[]}
info: <-- GET /wd/hub/sessions 200 3.445 ms - 23 {"status":0,"value":[]}

info: --> POST /wd/hub/session {"desiredCapabilities":{"platformName":"iOS","platformVersion":"8.1","newCommandTimeout":"999999","automationName":"Appium"}}

info: Client User-Agent string: Appium (unknown version) CFNetwork/673.5 Darwin/13.4.0 (x86_64) (MacBookPro7%2C1)

info: [debug] Got configuration error, not starting session
info: [debug] Cleaning up appium session
info: [debug] Error: The following desired capabilities are required, but were not provided: deviceName
    at Capabilities.checkValidity (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/capabilities.js:143:13)
    at Appium.configure (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/appium.js:238:35)
    at null. (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/appium.js:118:10)
    at Appium.start (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/appium.js:129:5)
    at exports.createSession (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/controller.js:182:16)
    at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/layer.js:82:5)
    at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:110:13)
    at Route.dispatch (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/route.js:91:3)
    at Layer.handle [as handle_request] (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/layer.js:82:5)
    at /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/express/lib/router/index.js:267:22

error: The following desired capabilities are required, but were not provided: deviceName
error: Failed to start an Appium session, err was: Error: The following desired capabilities are required, but were not provided: deviceName

info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: The following desired capabilities are required, but were not provided: deviceName)","origValue":"The following desired capabilities are required, but were not provided: deviceName"},"sessionId":null}
info: <-- POST /wd/hub/session 500 8.710 ms - 286 

其实这个错误比较难找。 不过我们可以这样:打开  appium settings, 然后 勾选 "prelaunch application",这样的话在server启动的时候我们就能启动app, 发现问题。

屏幕快照 2015 04 27 上午8.26.07

然后我们继续重启 appium server, 就会发现提示说 “找不到 8.1 版本的 iphone 6”, 所以,我们继续修改配置,  一定要选择好你本机有的 设备,比如,我的MAC上的模拟器,都是 ios 8.0 版本的,所以,我就按照下图来配置:

屏幕快照 2015 04 27 上午9.05.54

5.  继续重启。 然后发现 现在的appium启动很慢,因为要 预先启动我们的app.  然后弹出询问权限的框框:

屏幕快照 2015 04 27 上午8.28.00

点击确定。 就可以发现 appium 启动了。

屏幕快照 2015 04 27 上午8.29.01

6. 发现我们的app 终于启动了!!!

屏幕快照 2015 04 27 上午9.21.09

这里看起来跟 selenium GUI狠相似,如下图:

可以鼠标点击获取某个元素的xpath, 

可以点击record记录你的操作

可以查看 你的 record对应的ruby, oc, java,python代码。直接放到单元测试中。

还可以随时更新,同步你的emulator的界面。

屏幕快照 2015 04 28 上午8.30.43

p.s. 下面是15年2月26日的内容:不看也罢。

refer to:  http://appium.io

概述:很简单. 假设你都已经安装好了appium.

对于ios的同学有福气了,直接有个客户端:   https://github.com/appium/appium/releases

对于linux的同学, 还得用command line: 

$ appium &

因为 appium 对MAC的支持最好,所以我们以 mac为例子。

refer to:

订阅/RSS Feed

Subscribe

分类/category