专栏首页APP自动化测试iOS自动化探索(二)WDA API的使用

iOS自动化探索(二)WDA API的使用

前面我们已经安装好了WebdriverAgent, 现在可以用Facebook官方提供的API来进行一些操作

WDA API官方页面:

https://github.com/facebook/WebDriverAgent/wiki/Queries

如果在终端运行的话可以使用curl来调用API,需要搭配json_header + device_url + api组成,其中

json_header一般是: "Content-Type: application/json"

device_url一般是: http://localhost:8100/*

下面我们试试调用这些API

功能: 查询可服务状态(Checking Service Status)

API: curl -X GET $JSON_HEADER $DEVICE_URL/status

使用示范:

Jackeys-MacBook-Pro:~ jackey$ curl -X GET -H "Content-Type: application/json" -d "" http://localhost:8100/status
{
  "value" : {
    "state" : "success",
    "os" : {
      "name" : "iOS",
      "version" : "11.2.1"
    },
    "ios" : {
      "simulatorVersion" : "11.2.1",
      "ip" : "192.168.1.5"
    },
    "build" : {
      "time" : "Dec 25 2018 11:48:43"
    }
  },
  "sessionId" : "FB941AE9-551D-437E-A376-191DDDB354FB",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 
功能:打开会话并开启APP(Session handling)

API: curl -X POST $JSON_HEADER -d "{\"desiredCapabilities\":{\"bundleId\":\"com.apple.mobilesafari\"}}" $DEVICE_URL/session

使用示范:

Jackeys-MacBook-Pro:~ jackey$ curl -XPOST -H "Content-Type: application/json" -d "{\"desiredCapabilities\":{\"bundleId\":\"NOVA.ProductDemo\"}}" http://localhost:8100/session
{
  "value" : {
    "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
    "capabilities" : {
      "device" : "iphone",
      "browserName" : "ProductDemo",
      "sdkVersion" : "11.2.1",
      "CFBundleIdentifier" : "NOVA.ProductDemo"
    }
  },
  "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 
功能:查询当前会话(Querying current session)

API: curl -X GET $JSON_HEADER $DEVICE_URL/session/$SESSION_ID

使用示范:

Jackeys-MacBook-Pro:~ jackey$ curl -X GET -H "Content-Type: application/json" -d "" http://localhost:800/session/C7844276-1CB0-4165-9621-65B9B1E10E64
{
  "value" : {
    "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
    "capabilities" : {
      "device" : "iphone",
      "browserName" : "ProductDemo",
      "sdkVersion" : "11.2.1",
      "CFBundleIdentifier" : "NOVA.ProductDemo"
    }
  },
  "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 
功能:关闭会话并关闭程序(Removing session and kill application)

API: curl -X DELETE $JSON_HEADER $DEVICE_URL/session/$SESSION_ID

使用范例:

Jackeys-MacBook-Pro:~ jackey$ curl -X DELETE -H "Content-Type: application/json" -d "" http://localhos:8100/session/C7844276-1CB0-4165-9621-65B9B1E10E64
{
  "value" : {

  },
  "sessionId" : "406A1A5B-0164-4DA2-BFD9-051155F8B4B2",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 
功能:打开inspector

API: $DEVICE_URL/inspector

使用范例:

http://localhost:8100/inspector
功能:返回home screen

API: curl -X POST $JSON_HEADER -d "" $DEVICE_URL/wda/homescreen

使用范例:

Jackeys-MacBook-Pro:~ jackey$ curl -X POST -H "Content-Type: application/json" -d“” http://localhost:8100/wda/homescreen
{
  "value" : "Error Domain=com.facebook.WebDriverAgent Code=1 \"Timeout waiting until SpringBoard is visible\" UserInfo={NSLocalizedDescription=Timeout waiting until SpringBoard is visible}",
  "sessionId" : "967066CF-E504-4DAA-B18D-86A0EF0AD53A",
  "status" : 13
}Jackeys-MacBook-Pro:~ jackey$ 
功能:指定时间后退出app

 API: curl -X POST $JSON_HEADER -d "{\"duration\":3}" $DEVICE_URL/session/$SESSION_ID/wda/deactivateApp

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Objective-C 装饰模式--简单介绍和使用

    装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

    周希
  • Android自动化测试探索(五)代码覆盖率统计

    同样如果以上说的几个都不懂也行, 让开发帮忙做这些然后编个代码覆盖率统计的包给你测试, 测完把手机给开发取数据生成报告。 注意每次测试完先返回手机桌面把程序退到...

    周希
  • Objective-C 工厂模式(上) -- 简单工厂模式

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对...

    周希
  • 聊天机器人API Demo

    FHYC
  • leetcode443. String Compression

    对字符串进行简单的压缩操作,压缩的规则是,如果出现多个重复的字母,则用字母加上字母出现的字数进行表示。如果字母只出现一次,则不记录次数。

    眯眯眼的猫头鹰
  • 表——完整约束性规则(键)

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: primary key (PK) 标识该字段为该表的...

    用户1214487
  • 当你设计时,应该思考些什么

    在开始正文之前,我希望大家能够理解什么是最有效的学习方式。在当前的大环境下,各个平台学习类的教程或者文章层出不穷,我们似乎总是有学不完的知识,每天也都在积极地学...

    用户1730674
  • 「译」无处不在的微浏览器

    最近对交互设计方面比较感兴趣,关注了 Medium 的一些相关栏目,有很多文章虽然篇幅不长,但是讲的东西都是我们在使用 app 时经常接触到的,所以阅读这类文章...

    Chor
  • linux的一些运维指令和技巧

    转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

    帘卷西风
  • 教程 | 数码管还能这么玩,别样流水灯

    由于视频网站压缩的问题,上传后为标清,高清视频请移步到优酷或文末点击阅读原文观看 http://v.youku.com/v_show/id_XMzI4OTk5O...

    单片机技术宅

扫码关注云+社区

领取腾讯云代金券