[原]手把手教你appium_第一个示例日志解读
来源:互联网 发布:古罗马服饰 知乎 编辑:程序博客网 时间:2024/04/27 20:15
[原]手把手教你appium_第一个示例日志解读
运行成功了appium第一个例子后,日志一阵猛吐,也不知道细节是啥情况。这下仔细看看。那堆adb命令,就自己百度吧。
01. png:
1. 启动一个http服务器:127.0.0.1:4723
2. 根据测试代码setUp()进行初始化,在http服务器上建立一个session对象;
3. 开始调用adb,找到连接上的设备,设置设备id
猜测:这次我只连接了一个模拟器,如果还有多个设备呢,在第二篇文章中是命令行启动的,使用了-U参数来指定某个设备,但是我现在是图形界面启动的,没有地方指定设备
4. 等待设备准备好响应命令
相关命令:
c1: adb.exe -s emulator-5554 wait-for-device
c2: adb.exe -s emulator-5554 shell "echo 'ready'"
5.开启logcat日志监控
java -jar appium\node_modules\appium\lib\devices\android\helpers\strings_from_apk.jar aimsi.apk c:\windows\temp\com.example.aimsi
这条命令读取apk文件,生成了对一些apk基本信息的json描述,以我的为例:
{
"app_name" : "Aimsi",
"menu_settings" : "Settings",
"title_activity_main" : "MainActivity",
"RbtnImsi" : "汉字一",
"RtxtImsi" : "IMSI_IMEI"
}
将生成的apk属性信息文件strings.json存到了设备目录下:
c3:adb.exe -s emulator-5554 push "c:\\windows\\temp\\com.example.aimsi\\strings.json" /data/local/tmp
6.读取这个apk安装情况
c4:adb.exe -s emulator-5554 shell "pm list packages -3 com.example.aimsi"
读出来的结果是,我之前已经安装过这个apk
7.端口映射,发给appium httpserver的内容,经过httpserver后直接发给设备
c5:adb.exe -s emulator-5554 forward tcp:4724 tcp:4724
02. png
8. 弄了一个appium的jar包到设备上
c6:adb.exe -s emulator-5554 appium\node_modules\appium\build\android_bootstrap\appiumbootstrap.jar /data/local/tmp
百度bootstrap:Bootstrap 是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式
9.哇k,又安装了一个unlock_apk-debug.apk上去
c7:adb.exe -s emulator-5554 install appium\node_modules\appium\build\unlock_apk\unlock_apk-debug.apk
这个apk是用来解锁屏幕的?还是解锁apk,使其可调试?我猜是后者吧,回头运行测试程序的时候,看看手机上有没有这个apk就知道了。
10.kill掉所有的uiautomator进程
c8:adb.exe -s emulator-5554 shell "ps|grep 'uiautomator'"
我的模拟器上没有启动这个进程
11.执行bootstrap
c9:adb.exe -s emulator-5554 uiautomator runtest appiumbootstrap.jar -c io.appium.android.bootstrap.bootstrap
上帝原谅我,没管大小写。后面紧跟着的就是uiautomator的输出
12.bootstrap开始工作了
socket打开4724端口,appium的socket服务器准备就绪
加载json,唤醒客户端
等我想想,是不是这样的,设备上apk--设备上bootstrap--pc上appium http server--测试程序,先姑且这么猜着吧
03. png
13. 把所有设备上的运行窗口都输出到日志文件,判断了一下设备是已经解锁的,继续
c10:adb.exe -s emulator-5554 shell "dumpsys window"
日志文件写到了pc上:appium\node_modules\appium\.dumpsys.log
14.启动被测试程序
c11:adb.exe -s emulator-5554 shell "am start -S -n com.example.aimsi/.MainActivity"
15.等待被测程序获得焦点,此处超时是60s,模拟器太慢了,居然读了两次窗口才启动成功
16.创建了一个session,还记得最初的时候根据setup提交给appium httpserver的东东了吧,这次可就生成了sessionid了,还维持了一个工作队列,bootstrap从队列里面取得命令来执行,好像是,不知道队列是在pc上,还是设备上,我感觉像是在pc上;
04.png
05.png
06.png
后面的这些内容就没啥好看的了,无非就是一步步调用。
有人说为啥研究这些东西这么仔细,做技术,尤其是测试技术,原则是学多用少,搞明白底细,遇到问题的时候处理起来就快很多。
好吧,就写到这里。
- [原]手把手教你appium_第一个示例日志解读
- 手把手教你appium_第一个示例日志解读
- 手把手教你appium_android第一个示例
- 手把手教你appium_android第一个示例
- 手把手教你ranorex_android自动化测试第一个示例
- 手把手教你uiautomator_android自动化测试第一个示例
- Appium_第一个实例运行
- 手把手教你创建第一个fusioncharts
- 手把手教你TestComplete_第一个脚本_notepad自动化测试示例
- 手把手教你写第一个NHibernate小程序
- 【汇编】手把手教你打造自己的第一个操作系统
- 手把手教你创建第一个IOS应用
- 手把手教你配置第一个简单log4j实例
- 手把手教你写第一个Linux驱动程序
- Log4J学习【二】第一个日志示例
- Log4J学习【二】第一个日志示例
- 手把手教你TestComplete_EXCEL操作示例
- 手把手教你TestComplete_文件读写示例
- 70.leetcode Climbing Stairs(easy)[递推表示式 斐波那契数列]
- android Adapter详解
- Xcode 描述文件的路径
- webpack(四)本地服务器环境配置
- Android 不得不知Tag的妙用
- [原]手把手教你appium_第一个示例日志解读
- FPGA中RAM和reg区别
- 在IDEA中调试运行Spark SQL
- iOS Block的使用
- Scala学习笔记4 - 继承与覆盖
- ffmpeg开发指南
- 华为 最高分多少
- 掌握两种旋转Chem3D模型的操作技巧的方法
- C++基础:string和vector操作