1.启动appium;

appium的rest http 接口开始监听 4723 端口;

2.运行 python 脚本;

appium接收到一个post请求 /wd/hub/session,并携带了 capabilities 字典参数;

3.appium创建session;

调用 AppiumDriver.createSession() 方法,并把携带的参数传入;

创建成功session,显示session id;

4.找到jdk和adb;

5.检查android还是ios,判断是否连接设备、系统版本号、设备名称;

6.启动创建的 session,连接设备,获取设备的详情信息;

7.开始执行,运行 UiAutomator ,找到 AppiumBootstrap.jar ,并 push 到手机上;找到 要运行的包名,并尝试连接设备;失败后,会重新运行 UiAutomator ,尝试链接设备;唤醒屏幕,启动测试程序;

8.请求 close url,调用 AppiumDriver.closeApp() 方法,传入参数 session id;

关闭会话,等待60秒;

关闭session会话,删除session id;

通过adb命令向android发送 shutdown 命令,AndroidBootstrap 接收并返回结果;

9.关闭 UiAutomator;

需要知道的

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日志,分析其运行原理的更多相关文章

  1. Robotium源码分析之运行原理

    从上一章<Robotium源码分析之Instrumentation进阶>中我们了解到了Robotium所基于的Instrumentation的一些进阶基础,比如它注入事件的原理等,但Rob ...

  2. Python+Appium运行简单的demo,你需要理解Appium运行原理!

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.Appium 的理念 四个原则 1.Web-Selenium 的运行原理 2.Appium ...

  3. xtrabackup原理、备份日志分析、备份信息获取

    一. xtrabackup备份恢复工作原理: extrabackup备份简要步骤 InnoDB引擎很大程度上与Oracle类似,使用redo,undo机制,XtraBackup在备份的时候,以read ...

  4. mysql之 xtrabackup原理、备份日志分析、备份信息获取

    一. xtrabackup备份恢复工作原理: extrabackup备份简要步骤 InnoDB引擎很大程度上与Oracle类似,使用redo,undo机制,XtraBackup在备份的时候,以read ...

  5. Camel运行原理分析

    Camel运行原理分析 以一个简单的例子说明一下camel的运行原理,例子本身很简单,目的就是将一个目录下的文件搬运到另一个文件夹,处理器只是将文件(限于文本文件)的内容打印到控制台,首先代码如下: ...

  6. 老李推荐:第5章7节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 循环获取并执行事件 - runMonkeyCycles

    老李推荐:第5章7节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 循环获取并执行事件 - runMonkeyCycles   poptest是国内唯一一家培养测试开 ...

  7. 老李推荐:第5章6节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 初始化事件源

    老李推荐:第5章6节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 初始化事件源   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试 ...

  8. 老李推荐:第5章3节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动脚本

    老李推荐:第5章3节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 启动脚本   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性 ...

  9. 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用

    老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用   上一节我们描述了monkey的命令处理入口函数run是如何调用optionP ...

随机推荐

  1. 11、gitlab和Jenkins整合(2)

    5.补充: (1)构建说明: 1)Jenkins会基于一些处理器任务后,构建发布一个稳健指数 (从0-100 ),这些任务一般以插件的方式实现. 2)它们可能包括单元测试(JUnit).覆盖率(Cob ...

  2. 9、zabbix监控

    9.1.监控: 1.初级(凡人): (1)识别监控的对象: (2)理解监控的对象: (3)细分监控对象的指标: (4)确定告警的基准线: 2.预中级(飞仙): (1)工具化和监控分离: (2)监控对象 ...

  3. 本地无法访问虚拟机的tomcat

    查看 firewalld防火墙 是否开启 命令: firewall-cmd --state 如果是 running 关闭 firewalld防火墙命令: service firewalld stop  ...

  4. Java运算中的类型转换

    类型转换 运算中,不同类型的数据先转化为同一类型,然后进行运算 public class Dome04 { public static void main(String[] args) { //int ...

  5. shell 中的for循环

    第一类:数字性循环 #!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done #!/bin/bash for i i ...

  6. MySQL索引类型总结和使用技巧以及注意事项 (转)

      在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表:  代码如下: CREATE TABLE mytable(   ID INT NOT NULL,    us ...

  7. Java实验项目三——简单工厂模式

    Program: 请采用采用简单工厂设计模式,为某个汽车销售店设计汽车销售系统,接口car至少有方法print(), 三个汽车类:宝马.奥迪.大众 (属性:品牌,价格),在测试类中根据客户要求购买的汽 ...

  8. Jenkins集成SonarQube遇到的报错

    Jenkins集成Sonar过程中遇到的报错 1.jenkins中无法添加sonarqube的token凭证 因为添加的凭证类型错误,所以无法添加token,类型应该选择"Secret te ...

  9. ESP32的Flash加密知识

    一.Flash 加密功能用于加密与 ESP32-S2 搭载使用的 SPI Flash 中的内容.启用 Flash 加密功能后,物理读取 SPI Flash 便无法恢复大部分 Flash 内容.通过明文 ...

  10. python使用笔记007-内置函数,匿名函数

    1.匿名函数 匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能 1 #匿名函数也是一个函数,是一个简单的函数,没有名字,只能实现一些简单的功能 2 lambda x:x+1#入 ...