前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appium移动端自动化测试--capability使用和常用设备交互命令

Appium移动端自动化测试--capability使用和常用设备交互命令

作者头像
软测小生
发布2020-02-13 11:58:48
1.1K0
发布2020-02-13 11:58:48
举报
文章被收录于专栏:软测小生

capabilities 设置

Desired Capabilities

Desired Capabilities是在启动一个 session 的时候是必须提供的一些参数。 Desired Capabilities 本质上是以 key value 字典的方式存放,客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。它告诉 appium Server这样一些事情:

  • 本次测试是启动浏览器还是启动移动设备。
  • 是启动Andorid还是启动iOS。
  • 启动Android时,app的package是什么。
  • 启动Android时,app的activity是什么

各项参数如下:

  • App APK 地址 appPackage 包名 appActivity Activity 名字
  • automationName 默认使用 uiautomator
  • noReset fullReset 是否在测试前后重置相关环境
  • autoGrantPermissions 自动赋予 App 权限
  • unicodeKeyBoard resetKeyBoard 是否需要输⼊非英⽂之外的语⾔并在测试完成后重置输⼊法

实际应用如下: Python版:

代码语言:javascript
复制
    def setup(self):#初始化
        caps = {}
        caps["platformName"] = "android"
        caps["deviceName"] = "ruancexiaosheng"
        caps["automationName"] = "uiautomator2"
        caps["appPackage"] = "com.xueqiu.android"
        caps["appActivity"] = ".view.WelcomeActivityAlias"
        caps["autoGrantPermissions"] = "true"

        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
        self.driver.implicitly_wait(10)#添加隐式等待10秒

更多的参数配置请参考 这里

上述只是一个Demo,然而在正式的使用中,是要作进一步的参数化以及封装的,比如图所示: Python:

Python封装

Java:

Java封装

常用的设备交互命令

  • 模拟电话、短信
  • 横竖屏切换
  • App处理
  • 键盘、粘贴板
  • 录屏

更多更详细的可参考官方文档:

API操作官方文档

接下来使用模拟器演示一把如何发短信和打电话: 1、启动虚拟手机,在Appium上面启动服务 2、编写Python脚本,如下

代码语言:javascript
复制
from appium import webdriver
from appium.webdriver.extensions.android.gsm import GsmCallActions

class TestDemo:  #创建一个Class来承载所有的测试用例
    def setup(self):#初始化
        caps = {}
        caps["platformName"] = "android"
        caps["deviceName"] = "emulator-5554"
        caps["automationName"] = "uiautomator2"
        caps["appPackage"] = "io.appium.android.apis"
        caps["appActivity"] = ".ApiDemos"
        caps["autoGrantPermissions"] = "true"
        caps["unicodeKeyboard"] = True

        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
        self.driver.implicitly_wait(10)  # 添加隐式等待10秒

    # 模拟发短信和打电话
    def test_gsm_call(self):
        self.driver.send_sms(self, "1850755", "Hello, From Seveniruby")
        self.driver.make_gsm_call('1850755', GsmCallActions.CALL)

    def teardown(self):
        self.driver.quit()

但是在运行的时候不成功,报异常 不确定是不是以下截图的问题(还没找到原因):

提示apis未安装

以上是发短信和打电话的交互命令,其实交互命令很简单,更多的交互命令可以去官网查看,另外是以实际下载安装的API为准,官方文档的维护有的时候有一些滞后。

https://appium.io/docs/en/about-appium/api/ Appium主页:Commands >> Device>> 下面有很多交互API的详细说明。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软测小生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • capabilities 设置
  • 常用的设备交互命令
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档