通过Appium日志,分析其运行原理
Posted backlight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Appium日志,分析其运行原理相关的知识,希望对你有一定的参考价值。
1.启动appium;
![clipboard.png](https://image.cha138.com/20210814/91331f0006cd47eda8c2d87d59c93ad0.jpg)
appium的rest http 接口开始监听 4723 端口;
2.运行 python 脚本;
![2.png](https://image.cha138.com/20210814/f9d448e2b0bd4d27be7ade2f6c0b8bec.jpg)
appium接收到一个post请求 /wd/hub/session,并携带了 capabilities 字典参数;
3.appium创建session;
![3.png](https://image.cha138.com/20210814/60ca2ae4eda145f094121ad2372b5cc7.jpg)
调用 AppiumDriver.createSession() 方法,并把携带的参数传入;
创建成功session,显示session id;
4.找到jdk和adb;
![4.png](https://image.cha138.com/20210814/28dbde20957147cc9214bd95e98b0da9.jpg)
5.检查android还是ios,判断是否连接设备、系统版本号、设备名称;
![5.png](https://image.cha138.com/20210814/1dc2b8b3ba7149caaaafaf7110d7011e.jpg)
6.启动创建的 session,连接设备,获取设备的详情信息;
![6.png](https://image.cha138.com/20210814/22bfa3eb59c24a0e90acfb1255a861b9.jpg)
7.开始执行,运行 UiAutomator ,找到 AppiumBootstrap.jar ,并 push 到手机上;找到 要运行的包名,并尝试连接设备;失败后,会重新运行 UiAutomator ,尝试链接设备;唤醒屏幕,启动测试程序;
![7.png](https://image.cha138.com/20210814/d190fbb4f38a4408abe6ecff96b782cb.jpg)
8.请求 close url,调用 AppiumDriver.closeApp() 方法,传入参数 session id;
关闭会话,等待60秒;
关闭session会话,删除session id;
通过adb命令向android发送 shutdown 命令,AndroidBootstrap 接收并返回结果;
![8.png](https://image.cha138.com/20210814/bc61e6654d7244b286eb901efe55875d.jpg)
9.关闭 UiAutomator;
![9.png](https://image.cha138.com/20210814/74965758050e436a9fcbef92e870b4cc.jpg)
需要知道的
1.android通过package来识别app的。如果俩apppackage一样,只能安装一个,另一个安装时会提示已安装或直接覆盖上一个app;
Activity为app提供屏幕显示内容,也就是界面化,所有的UI都显示在Activity;
启动app时,手机先通过package找到要启动的app,然后再查找主Activity启动。一般为欢迎页面、登录页面或其他主页面;
app的UI测试就是要测试各Activity的页面元素;
2.appium是C/S架构,核心是web服务器,它提供一套REST的接口,会接收到客户端的连接,监听到命令。执行会再将结果通过Http响应返回给客户端;
appium服务端会创建一个session,自动化始终围绕一个session进行。不同语言有不同实现方式,但最终都会是发送一个Post请求给服务端,请求中包含一个Json对象,被称作‘Desired Capabilities’,Desired Capabilities是一些键值对的集合,客户端将这些键值对发给服务端,告诉服务端我们想怎么测试。
以上是关于通过Appium日志,分析其运行原理的主要内容,如果未能解决你的问题,请参考以下文章