首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android自动化测试中电话的操作技巧

Android自动化测试中电话的操作技巧

作者头像
测试开发囤货
发布于 2023-08-08 01:45:05
发布于 2023-08-08 01:45:05
1.5K10
代码可运行
举报
文章被收录于专栏:测试开发囤货测试开发囤货
运行总次数:0
代码可运行
Android自动化测试中电话的操作技巧

一、adb拨打电话的机制简介

adb(Android Debug Bridge)是Android调试桥的缩写,它提供了一系列命令,可用于控制Android设备或模拟器。利用adb,我们可以通过命令行实现自动化拨打电话等操作。

adb拨打电话的原理是:adb可以启动目标设备上的拨号程序,并向其传递电话号码参数,使拨号程序自动填充号码并拨打。这样就避免了手动输入电话号码的麻烦。

二、拨打方式介绍

常见的adb拨打电话的方式有以下两种:

  1. 分步拨打 先用adb启动拨号程序,再通过adb输入电话号码,最后发送拨号键代码。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell am start -a android.intent.action.DIAL

adb shell input text 10086
   
adb shell input keyevent KEYCODE_CALL
   
  1. 一步拨打 通过am start命令的-d参数直接指定电话号码,一步到位。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell am start -a android.intent.action.DIAL -d tel:10086

相比分步拨打,一步拨打可以更简洁高效地完成拨号操作。

三、命令解析

一步拨打电话的命令为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb shell am start -a android.intent.action.DIAL -d tel:10086
  • adb shell:在adb中运行shell命令
  • am:Activity Manager的缩写,用于启动活动
  • start:启动活动
  • -a:指定启动的action,-a后跟action名称
  • android.intent.action.DIAL:拨号的action
  • -d:指定uri类型的数据,-d后跟uri
  • tel:表示uri为电话号码
  • 10086:要拨打的电话号码

所以该命令表示:启动拨号程序,并指定拨打电话号码10086。

四、实际应用

在自动化测试中,我们可以将该命令封装为一个函数,根据需求动态传入不同的电话号码来实现自动拨打电话。 例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os

def call_number(number):

  cmd = "adb shell am start -a android.intent.action.DIAL -d tel:"+number

  os.system(cmd)

#测试场景
call_number("10086") 

五、优化效果

相比于分步拨打电话,一步拨打可以省去多次输入命令的麻烦,优化测试效率。 主要优点包括:

  • 减少命令数量,简化操作
  • 避免多次WaitFor操作等待
  • 提高稳定性,不依赖命令执行顺序
  • 代码量少,结构清晰
  • 运行流畅,缩短执行时间

六、注意事项

  • 确保设备已连接adb调试
  • 根据实际需求自定义电话号码
  • 权限可能需要手动授权
  • 实际拨打还需用户确认
  • 避免频繁自动拨打带来的风险

七、总结

adb shell am start -a android.intent.action.DIAL -d tel:10086

这一条命令可以实现快速自动拨打电话。

相比分步操作,它简化了流程,提高了效率。在自动化测试场景中,我们可以根据需求调用该命令实现自定义的自动拨号功能。 需要注意的有确认adb连接、自定义号码、权限授权等。合理应用该命令,可以大大优化测试用例的设计,提高自动化测试的覆盖率和效率。

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

本文分享自 测试开发囤货 微信公众号,前往查看

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

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

评论
登录后参与评论
1 条评论
热度
最新
如何判断电话是否接通了呢??
如何判断电话是否接通了呢??
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Android自动化测试中短信的操作技巧
短信作为一种重要的移动通信方式,在APP测试中也经常需要验证短信功能的正确性。为了避免大量手动操作设备发送短信的低效率,我们可以利用ADB命令达到自动发送短信的目的。
测试开发囤货
2023/08/08
4480
Android自动化测试中短信的操作技巧
安卓基础干货(一):了解一下安卓的发展历史
金兴 1.1G-4G的介绍 G generation 1G 大哥大 只能进行通话 不能发短信 2G wap.baidu.com 支持上网 彩信业务 3G 沃 www.baidu.com 7.2M/s 4G lte long time evolution 100M/s 主要区别 速率的不同 5G 华为 大公司卖标准 小公司卖产品 arm:并不生产处理器 10G/s 2.Android操作系统介绍 安迪鲁宾研发 3.Android历史介绍 And
緣來
2018/09/18
1.4K0
安卓笔记一
1g: 大哥大 特点:安全性差,容易受干扰,通话不稳定,不能发短信 2g:小灵通等功能机 特点:通话质量稳定,可以发短信彩信,简单wap上网,支持一些简单的java游戏 3g:android ios 等智能手机 特点:上网快了很多,能够处理图像,音乐,视频流等多种媒体形式. 4g: lte , long time evolution(演变) 特点: 上网速度更快,100M带宽。
HUC思梦
2020/09/03
7520
Android Intent用法全面详解
朋友们在开发的时候对Intent肯定并不陌生,下面总结了一下Intent除了用在activity之间的跳转,还可以        在哪些地方使用: 1.显示网页
再见孙悟空_
2023/02/10
6830
024android初级篇之Android常用调试命令
会有从开机之后详细的dumpsys,dumpstate和logcat信息,是一份完整的日志记录。对分析用户行为,异常信息,系统状态有很大的参考作用
上善若水.夏
2018/09/28
8960
使用am start命令启动android apk应用程序
启动tbox service test apk adb root adb shell am start -n com.demo.hmi.xxxservices.xxx/.MainActivity
天天Lotay
2023/10/15
2.9K0
Intent的七大属性, ComponentName、  Action 、 Category 、 Data  、Type、  Extra  、Flags。
Action作为标识符,代表一个Intent,当一个Activity需要外部协助处理时,就会发出一个Intent,如果一个程序能完成相应功能,只要在intent-filter加上这个这个intent就可以了。 Data保存需要传递的数据格式,比如:tel:// Extras保存需要传递的额外数据。 Category表示Intent的种类,从android上启动Activity有多种方式,比如 程序列表、桌面图标、点击Home激活的桌面等等,Category则用来标识这些Activity的图标会出现在哪些启动的上下文环境里。
zhangjiqun
2024/12/16
2330
从0系统学Android-2.5更多隐式Intent用法
上一节中我们学习了通过隐式 Intent 来启动 Activity。实际上隐式 Intent 还有更多的内容。
开发者
2019/12/26
5320
Intent action属性大全
Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”。 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter>元素来过滤。 Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra)。 Intent在寻找目标组件的时候有两种方法:第一,通过组件名称直接指定;第二,通过Intent Filter
黄啊码
2020/05/29
1.7K0
Android自动化测试中媒体文件的操作技巧
在进行Android自动化测试时,我们常常需要通过adb工具向设备内推送文件,例如推送视频文件到相册目录。但是系统的媒体扫描机制并不能实时识别新增文件,导致我们的测试无法观察到文件变化。
测试开发囤货
2023/08/08
7720
Android自动化测试中媒体文件的操作技巧
Android中的权限问题
在Android程序中,在执行形如访问网络、读取联系人时都要声明权限,在 Android 系统版本小于6.0时,所有的权限只需要在AndroidManifest文件中声明就可以使用对应的功能了。 但是在Android6.0版本以上,Android将权限分为了普通权限和危险权限,其中普通权限的使用和以前的Android版本一样,直接在AndroidManifest文件中声明就行了,系统会自动帮我们授权,但是危险权限不仅要在AndroidManifest文件中声明,还需要在使用权限的时候通过代码来判断用户授权并且对用户授权的结果进行对应的处理。那么哪些权限是危险权限呢,下面给出了Android所有的危险权限,那么除了下表中的危险权限,其它的权限就都是Android普通权限了:
指点
2019/01/18
1.6K0
Android中的权限问题
【权限问题专项】电话权限合理使用场景VS不合理使用场景说明
权限问题专项文章已经对位置、短信、存储、悬浮窗、通知栏权限的合理使用场景、不合理使用场景进行了详细说明,本文将对电话权限的合理使用场景、不合理使用场景进行梳理总结。下图为《绿标5.0安全标准》对于电话权限的要求:
软件绿色联盟
2022/05/16
2.5K0
【权限问题专项】电话权限合理使用场景VS不合理使用场景说明
Android Intent Action 大全
1、 使用Action跳转,当程序AndroidManifest.xml中某一个 Activity的IntentFilter定义了包含Action,如果恰好与目标Action匹配,且其IntentFilter中没有定义其它的Type或Category过滤条件,那么就正好匹配了。如果手机中有两个以上的Action程序匹配,那么就会弹出一个对话可框来提示说明。例如打开一个网址,弹出可选对话框:
阳光岛主
2019/02/19
3.1K0
Android Intent Action 大全
Android监听自身卸载,弹出用户反馈调查
1,情景分析         在上上篇博客中我写了一下NDK开发实践项目,使用开源的LAME库转码MP3,作为前面几篇基础博客的加深理解使用的,但是这样的项目用处不大,除了练练NDK功底。这篇博客,我将讲述一下一个各大应用中很常见的一个功能,同样也是基于JNI开发的Android应用小Demo,看完这个之后,不仅可以加深对NDK开发的理解,而且该Demo也可以使用在实际的开发中。不知道大家在使用一个Android应用的时候,当我们卸载这个应用后,设备上会弹出一个“用户反馈调查”的网页出来,也许很多人没有留意
xiangzhihong
2018/02/01
3.1K0
Android监听自身卸载,弹出用户反馈调查
adb 常用命令解析
adb shell dumpsys activity activities | grep mFocusedActivity
测试开发社区
2022/11/16
1.8K0
Android学习笔记,不断更新
​ 所有以drawable开头的文件夹都是用来放图片的; ​ 所有以mipmap开头的文件夹都是用来放应用图标的 ​ 所有以values 开头的文件夹都是用来放字符串、样式、颜色等配置的; ​ layout 文件夹是用来放布局文件的;
小锋学长生活大爆炸
2020/08/13
1.2K0
Android学习笔记,不断更新
009android初级篇之APP中使用系统相机相册等集成应用
这是第一种方式 在启动相机前先指定好图片的文件位置,通知intent,同时也保留在成员变量中。然后在函数中,可以直接打开该文件
上善若水.夏
2018/09/28
6950
详解Android AM命令
在Android中,我们除了从界面上启动程序之外,还可以从命令行启动程序,如使用命令行工具am.
jack.yang
2025/04/05
1750
详解Android AM命令
相关推荐
Android自动化测试中短信的操作技巧
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档