51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3578|回复: 0
打印 上一主题 下一主题

[转贴] appium的使用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-23 17:23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言

好长时间不写博客了,大约快2年了吧(没细算)。这么长时间不写博客其实是有缺点的。最重要的缺点就是:学的知识没有及时的总结,导致即学后用后即忘记,这方面造成了时间上的极大浪费!!!引以为戒,今后应多总结,多写博客。今天要总结的appiu其实很久很久之前就学习过了(大约一年前),然后用完之后又忘了。如今又有需要使用该工具,遂又学了一遍。赶紧总结记录一下。

Appium遵循的哲学理念

你不需为了操作app而重新编译或修改它。appium拿来就可以用,直接就可以操作app,不用对app作额外的工作。
不需要刻意学习了解特定的测试语言或者框架,就可以进行测试。appium也确实是这样做的,最基本的满足可以进行http请求就可以完成整个测试。
不管你是测android,ios…进行测试的api不变化。省去了重新造轮子的时间。
开源!!!
appium的设计也的确是紧紧围绕这四点。

设计理念

cs架构;session;Desired Capabilities;Appium Server

client/server 架构,server管理需要被测试的设备。client向server发送符合Desired Capabilities(key和value)命令,实质上是http请求,然后server执行相应指令,并响应结果于client。
appium server的设计符合 webdriver规范[1]。client可根据该规范进行http请求,进而实现测试需求。

关于appium server

appiumserver的实现比较多,各平台桌面版[2],不过还有node,这样就很好很方便了,二者可以结合着使用,桌面版方便写测试脚本,node适合你持续集成测试。

桌面版的一些简要说明

server版:

填上你的appiumserver地址。
启动后的页面:

打开可视化客户端:


点击start session即可创建一个session。关于创建session的参数示例,以android为例:
  1.    {
  2.   "deviceName": "adb device 获取设备名",
  3.   "platformVersion": "8.0.0",
  4.   "appPackage": "com.example.pkg",
  5.   "platformName": "Android",
  6.   "appActivity": "com.example.pkg.WelcomeActivity"
  7. }
复制代码

好了,之后的可视化做的就比较好了,就不在啰嗦了。

来了解一下appium的一些命令

首先这些命令是和 wedriver规范相兼容的。
当然你也可以使用封装好的libriary

还有:Objective C PHP C# (.NET) RobotFramework 可以去官网看看[3]

以上轮子封装的比较好。另外它们到底封装的是什么,简单了解一下:

首先你要启动appium server,可通过桌面版也可以通过node版。


node版本的安装(node的安装可百度):node install -g appium

启动server:appium

status 命令

  1. curl '127.0.0.1:4723/wd/hub/status
复制代码

返回结果:

  1. {"value":{"build":{"version":"1.7.2","revision":null}}
复制代码
创建session命令
  1. curl -l -H "Content-type: application/json" -X POST -d '{"desiredCapabilities":{"deviceName": "f95ae4f7","platformVersion": "7.0","appPackage": "com.example.pkg","platformName": "Android","appActivity": "com.example.pkg.MainActivity"}}'  'http://127.0.0.1:4723/wd/hub/session'
复制代码

返回的参数:
  1. {"status":0,"value":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"deviceName":"f95ae4f7","platformVersion":"7.0","appPackage":"com.example.pkg","platformName":"Android","appActivity":"com.example.pkg.MainActivity"},"deviceName":"f95ae4f7","platformVersion":"7.0","appPackage":"com.example.pkg","platformName":"Android","appActivity":"com.valvesoftware.android.steam.community.activity.MainActivity","deviceUDID":"f95ae4f7","deviceScreenSize":"1080x1920","deviceModel":"MI 5s","deviceManufacturer":"Xiaomi"},"sessionId":"c3f0322b-b6a4-40d2-a818-09e4340c1870"}
复制代码
好了到此我们拿到了sessionid:
  1. "sessionId":"c3f0322b-b6a4-40d2-a818-09e4340c1870"
复制代码

之后就可以为所欲为的测试了。

例如截图
  1. curl '127.0.0.1:4723/wd/hub/session/c3f0322b-b6a4-40d2-a818-09e4340c1870/screenshot' >> result.json
复制代码
结果里面含有截图的base64字符串。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 08:27 , Processed in 0.064626 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表