当前播放: 07 | Android App的常见概念
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:自动化测试理论 (6讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 自动化测试的价值
免费
04 | 自动化测试常见误区
免费
05 | 自动化测试的技术体系
免费
06 | UI分层测试体系
第二章:App结构解析 (3讲)
07 | Android App的常见概念
08 | Android调试桥adb命令详解
09 | 自动化测试常用命令
第三章:App自动化测试框架Appium (17讲)
10 | Appium架构介绍
11 | Appium Desktop安装
12 | Appium Server安装
13 | Appium Desktop用例录制
14 | 用例结构解析
15 | 使用隐式等待让用例更稳定
16 | 控件定位方法
17 | 常用自动化API
18 | 长按/滑动等TouchAction应用
19 | 测试用例的改造
20 | capability使用进阶
21 | Appium设备交互API
22 | 使用显式等待处理复杂等待条件
23 | 高级XPath定位
24 | Android Toast识别
25 | 使用断言验证预期结果
26 | 参数化与数据驱动
第四章:Android自动化测试 (4讲)
27 | Native原生App的自动化测试
28 | Hybrid混合App的自动化测试
29 | 纯HTML5站自动化测试
30 | 小程序自动化测试
第五章:iOS自动化测试 (6讲)
31 | iOS测试工具体系
32 | App Store与苹果证书体系
33 | iOS模拟器自动化测试
34 | iOS真机测试
35 | iOS WebView测试
36 | Safari测试
第六章:基于Page Object模式的自动化测试用例实战 (5讲)
37 | Page Object设计模式
38 | Page Object六大设计原则
39 | Page Object第一个例子
40 | BasePage封装改进
41 | 基于Page Object模式的移动自动化测试实战
第七章:测试框架封装改造 (4讲)
42 | Appium错误排查与日志分析
43 | Appium原理与JSONWP协议分析
44 | Appium源代码分析
45 | Appium二次封装实战
第八章:自动遍历回归测试 (3讲)
46 | 自动遍历测试方法与常见技术介绍
47 | Monkey Maxim遍历测试工具
48 | AppCrawler跨平台自动遍历测试
第九章:自动化测试平台 (2讲)
49 | 移动自动化测试平台价值
50 | 技术架构与智能设备选型
07 | Android App的常见概念

07 | Android App的常见概念

思寒
TesterHome 社区测试专家、霍格沃兹测试学院创始人
59讲 约1100分钟2367
单独订阅¥129
2人成团¥99
4
本节摘要

Appium 参考文档汇总与安装、课件和 Demo 地址
https://github.com/geektime-geekbang/Geek_AppAutomationTesting

登录 后留言

精选留言(13)

  • 菜鸟
    C:\Users\Administrator>adb shell am start -n com.tencent.mobileqq/.activity.QQLSActivity -S
    Stopping: com.tencent.mobileqq
    Starting: Intent { cmp=com.tencent.mobileqq/.activity.QQLSActivity }
    Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.tencent.mobileqq/.activity.QQLSActivity } from null (pid=22030, uid=2000) not exported from uid 10128
    java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.tencent.mobileqq/.activity.QQLSActivity } from null (pid=22030, uid=2000) not exported from uid 10128
    at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1953)
    at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:1264)
    at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:685)
    at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:2310)
    at com.android.server.am.ActivityStarter.execute(ActivityStarter.java:625)
    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6109)
    at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6078)
    at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:479)
    at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:161)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:19106)
    at android.os.Binder.shellCommand(Binder.java:634)
    at android.os.Binder.onTransact(Binder.java:532)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3500)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3860)
    at com.android.server.am.OppoActivityManagerService.onTransact(OppoActivityManagerService.java:853)
    at android.os.Binder.execTransact(Binder.java:731)

    作者回复: 这个界面不允许直接启动,你得寻找真正的可启动的入口

    2019-10-25
    3
    2
  • Carol
    老师,请问有推荐的IOS模拟器么?

    作者回复: facebook也是改进了apple的模拟器,苹果很保守,第三方很难定制

    2019-11-15
    2
    1
  • 陈丹
    这个bash窗口怎么打开的,如何登陆成功的呢,这部分老师在后续课程中能演示么

    作者回复: windows下用git bash,mac下用iterm2或者terminal

    2019-10-27
    1
  • 菜鸟
    我用真机启动直接就杀死了,不能启动

    作者回复: 有可能你获得的入口不对,有些不是入口界面的,可能会提示权限问题,你把报错信息发下吧。

    2019-10-23
    1
    1
  • 菜鸟
    我用真机 (输入命令打开app进不去)

    作者回复: 真机是可以的,可能是你的环境问题。把命令和报错信息发下看看。

    2019-10-23
    1
  • 小猪猪🐷
    老师我启动luckin coffee 的时候报以下错,为什么呢

    $ adb shell am start -n com.lucky.luckyclient/.splash.boot.BootAdvertActivity -S
    Stopping: com.lucky.luckyclient
    Starting: Intent { cmp=com.lucky.luckyclient/.splash.boot.BootAdvertActivity }
    Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.lucky.luckyclient/.splash.boot.BootAdvertActivity } from null (pid=16267, uid=2000) not exported from uid 10189

    java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.lucky.luckyclient/.splash.boot.BootAdvertActivity } from null (pid=16267, uid=2000) not exported from uid 10189
            at com.android.server.am.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1702)
            at com.android.server.am.ActivityStarter.startActivity(ActivityStarter.java:467)
            at com.android.server.am.ActivityStarter.startActivityLocked(ActivityStarter.java:283)
            at com.android.server.am.ActivityStarter.startActivityMayWait(ActivityStarter.java:913)
            at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4734)
            at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:417)
            at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:141)
            at android.os.ShellCommand.exec(ShellCommand.java:96)
            at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:15518)
            at android.os.Binder.shellCommand(Binder.java:597)
            at android.os.Binder.onTransact(Binder.java:495)
            at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:4328)
            at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3020)
            at android.os.Binder.execTransact(Binder.java:702)

    作者回复: 看起来是你的入口没找对,你用adb logcat看下入口

    2019-12-18
  • HaiYan
    怎么不讲Windows电脑上的查看打印log文件查看APP启动入口的命令?

    作者回复: 一样的 windows使用git bash去操作。默认没有grep命令,可以用findstr命令代替

    2019-12-13
  • 江边一支笔
    老师您好!
    使用真机执行命令 adb shell am start -W -n com.xxx.xxx/.mvp.ui.activity.MainActivity -S 运行我们公司app的时候报错
    报错信息:
    Stopping: com.xxx.xxx
    Starting: Intent { cmp=com.xxx.xxx/.mvp.ui.activity.MainActivity }
    Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.xxx.xxx/.mvp.ui.activity.MainActivity } from null (pid=4558, uid=2000) not exported from uid 10275

    作者回复: 说明你没找对正确的入口,不是每个activity都可以被这样启动的。

    2019-12-07
  • 维奇
    【window 10】回去程序入口报错:
    C:\Users\vici>adb locat | grep Displayed
    'grep' 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    这怎么解决的?是我的环境安装有问题吗?

    作者回复: windows下用不用findstr,要不就是使用git bash。grep是linux下的,只有git bash里面有

    2019-11-10
  • 想问一下mac终端输入命令adb logcat | grep -i displayed后不回到命令输入界面,应该用哪个快捷键让它回到[HANdeMBP:~ han$ 继续输入命令呢

    作者回复: ctrl c

    2019-11-07
    1
  • 琳琳
    老师,您好,能不能稍微讲的详细一点,比如说这个窗口用git bash打开后,然后怎么操作呀

    作者回复: 这个跟app自动化关系不大,不在课程体系内,没有时间去深入开展讲。可以关注下霍格沃兹测试学院的课程,他们关于shell与git bash有更详细的资料

    2019-11-05
  • nmm
    老师,我用>adb shell "logcat|grep -i displayed"命令去查我们公司做的产品的入口,怎么查不到
    10-31 14:39:34.489 622 641 I ActivityManager: Displayed sogou.mobile.explore
    r/.BrowserActivity: +5s20ms (total +6s563ms)
    10-31 14:40:00.482 622 641 I ActivityManager: Displayed sogou.mobile.explore
    r/.BrowserActivity: +2s703ms (total +3s692ms)
    只查到这个。为什么??

    作者回复: 你目前看到的这个不就是入口嘛

    2019-10-31
  • su`m
    我用真机调试的,使用adb logcat | grep Displayed 打开淘宝,给我了4个activity:
    λ adb logcat | grep Displayed
    10-15 17:03:43.697 1458 1541 I ActivityManager: Displayed com.jingdong.app.mall/com.jd.lib.productdetail.ProductDetailActivity: +142ms (total +327ms)
    10-15 17:04:26.403 1458 1541 I ActivityManager: Displayed com.jingdong.app.mall/com.jd.lib.search.view.Activity.SearchActivity: +114ms
    10-15 17:04:29.912 1458 1541 I ActivityManager: Displayed com.jingdong.app.mall/com.jd.lib.search.view.Activity.ProductListActivity: +152ms
    10-15 17:05:00.597 1458 1541 I ActivityManager: Displayed com.jingdong.app.mall/com.jd.lib.productdetail.ProductDetailActivity: +162ms
    10-15 17:05:17.737 1458 1541 I ActivityManager: Displayed com.jingdong.app.mall/com.jd.lib.productdetail.ProductDetailActivity: +137ms
    10-15 17:06:15.861 1458 1541 I ActivityManager: Displayed com.jingdong.app.mall/com.jd.lib.productdetail.ProductDetailActivity: +146ms
    10-28 10:09:44.729 1458 1541 I ActivityManager: Displayed com.taobao.taobao/com.taobao.cainiao.logistic.ui.view.LogisticDetailActivity: +88ms
    10-28 10:09:51.271 1458 1541 I ActivityManager: Displayed com.taobao.taobao/com.taobao.order.list.OrderListActivity: +128ms
    10-28 10:09:52.609 1458 1541 I ActivityManager: Displayed com.taobao.taobao/com.taobao.browser.BrowserActivity: +153ms
    10-28 10:13:32.164 1458 1541 I ActivityManager: Displayed com.taobao.taobao/com.taobao.tao.TBMainActivity: +1s116ms (total +2s175ms)

    只有:adb shell am start -n com.taobao.taobao/com.taobao.order.list.OrderListActivity -S这句的activity可以启动页面。
    其他的activity提示有的跟留言的童鞋一样情况,还有的:
    adb shell am start -n om.taobao.taobao/com.taobao.browser.BrowserActivity -S
    Stopping: om.taobao.taobao
    Starting: Intent { cmp=om.taobao.taobao/com.taobao.browser.BrowserActivity }
    Error type 3
    Error: Activity class {om.taobao.taobao/com.taobao.browser.BrowserActivity} does not exist.
    以后要怎么区分那?还是挨个调试?

    作者回复: 抓到的第一个activity才是入口,除了使用logcat,使用aapt也可以获取到里面的可启动的入口,不用挨个去试。

    2019-10-28
收起评论
看过的人还看
软件测试52讲

茹炳晟  eBay中国研发中心,测试基础架构技术主管

63讲 | 13553 人已学习

拼团 ¥79 原价 ¥99
DevOps实战笔记

石雪峰  京东商城工程效率专家

35讲 | 3511 人已学习

拼团 ¥79 原价 ¥99
项目管理实战20讲

雷蓓蓓  网易杭研项目管理部总监,《网易一千零一夜》核心作者

23讲 | 4024 人已学习

拼团 ¥55 原价 ¥68
性能测试实战30讲

高楼  前HP高级性能专家,7DGroup创始人

30讲 | 2671 人已学习

限时 ¥68 原价 ¥99