1 Appium介绍
admin
2023-02-17 01:40:02
0

1 Appium概念(官网   http://appium.io   )

  1)概念:appium是一个自动化测试开源工具,支持IOS、Android平台上的原生应用、web应用和混合应用

  2)原生应用:是指使用ios或者android编写的应用

      web应用:是指移动浏览器访问的应用,即H5页面

      混合应用:原生代码和web内容交互,即APP内嵌的H5页面

2 Appium理念

  1)无需为了自动化而重新编译或者修改你的应用

    appium真正的工作引擎是第三方自动化框架(例如ios的Uiautomation,Android 4.2+的UiAutomator,Android 2.3+的Instrumentation->Instrumentation由单独项目Selendroid支持),这样就不需要再你的应用中植入aooium相关或者第三方的代码。

  2)你不必局限于某种语言或者框架来写和运行测试脚本

    将上述的第三方框架封装成一套API,webDriver(即Selenium WebDrier)。指定了客户端到服务端的协议。使用这种客户端-服务端架构,就可以使用任何语言来编写客户端,向服务端发送HTTP请求。客户端就是简单的HTTP客户,你可以使用任何测试套件或者测试框架(目前已经实现了大多数流行语言版本的客户端)编写刻画段的代码。换句话说:Appium和webDriver客户端不是技术意义上的测试框架,而是“自动化库”,你可以在你的测试环境中随意使用这些自动化库。

  3)一个移动自动化的框架不应该在接口上重读造轮子(移动自动化的接口应该统一)

    事实上webDriver已经成为web浏览器自动化的标准,也成了W3C的标准,所以Appium扩充了webDriver的协议,在原有的基础上添加移动自动化相关的API

  4)无论精神上还是名义上,都必须开源

    appium是开源的

3 Appium几个重要的概念

  1)C/S架构

    Appium 的核心是一个 web 服务器,它提供了一套 REST 的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在 HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同 的机器上。比如我们可以只写测试代码,然后使用像 Sauce Labs 这样的云服务来解释命令。

  2)Session

    自动化始终围绕一个session进行,客户端初始化一个seesion(会话)来与服务端交互,不同的语言有不同的实现方式,但是他们最终都是发送为一个POST请求给服务端,请求中包含一个JSON对象,被称作“desired capabilities”。此时,服务端就会开启一个自动化的 session,然后返回一个 session ID,session ID将会被用户发送后续的命令。

  3)Desired Capabilities

    Desired capabilities 是一些键值对的集合 (比如,一个 map 或者 hash),客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。比如,我们可以把platformName 设置为 iOS,告诉 Appium 服务端,我们想要一个iOS 的 session,而不是一个 Android 的。我们也可以设置 safariAllowPopups 为 true,确保在 Safari 自动化 session 中,我们可以使用 javascript 来打开新窗口。参见 capabilities 文档,查看完整的 capabilities 列表。

  4)Appium Server

    Appium server 是用 Node.js 写的。我们可以用源码编译或者从 NPM 直接安装。

  5) Appium 服务端

    Appium 服务端有很多语言库 Java, Ruby, Python, PHP, JavaScript 和 C#,这些库都实现了 Appium 对 WebDriver 协议的扩展。当使用 Appium 的时候,你只需使用这些库代替常规的 WebDriver 库就可以了。

以上内容转载至:https://testerhome.com/topics/14772

4 Appium工作原理

    Appium是Node.js写的http服务器,用来创建和控制webDriver的session。

    Appium服务器接收 json 格式的request请求,根据不同平台对这些请求采取不同的处理方式。我们执行脚本时,脚本会转换成json数据,通过http请求发送给Appium Server,Appium Server将请求转换成command,发送给平台工具(ios:instruments;android:uiautomator)在设备上查找Appium 推送上来的bootstrap.js(bootstrap.js 是Appium架构 放在手机端的一个服务器),来执行这些命令。执行完后,客户端将结果和log发送回Appium Server。

                                           1 Appium介绍


相关内容

热门资讯

安徽一高标准农田电机出水异常,... 近日,安徽省淮北市濉溪县百善镇丁楼村村民向《都市现场》爆料称:村里2023年建成的高标准农田配套电机...
河北一演唱会音响“翻车”,人声... 近日,来自北京的庞女士向都市现场记者反映,她7月11日在河北唐山观看“青春超燃巨星演唱会”时遭遇了极...
尺素金声|中国经济“失速论”站... 一季度GDP同比增长5.0%、二季度增长4.3%、上半年增长4.7%,2026年中国经济半年报发布后...
NVIDIA最深的护城河要凉!... 7月24日消息,AMD在Advancing AI预简报会上表示,CUDA已不再是外界想象中的那条护城...
廖杰远:三大智能体协同闭环,A... 中国日报网7月24日电 7月22日,在2026年世界互联网大会数字丝路发展论坛数智健康分论坛上,微医...
AI时代构筑超级底座 维谛技术... 文/本报记者 当前,人工智能产业竞争持续向产业链上游延伸,算力竞争早已不再局限于计算芯片性能比拼。具...
刚签核协议不到24小时,美国突... 美国东部时间7月22日下午,美国宣布与沙特阿拉伯签署了一项民用核能协议。据美国有线电视新闻网(CNN...
中国信通院牵头,数据编织国际标... IT之家 7 月 24 日消息,中国信通院今日发文称,国际电信联盟第 21 研究组(ITU-T SG...
国内首颗商业空间碎片监测卫星发... 【国内首颗商业空间碎片监测卫星发射成功】《科创板日报》24日讯,7月24日上午,中科宇航力箭一号运载...
邓煜,诗人,数学家,老二次元 来源 视觉中国菲尔兹奖的通知邮件抵达时,普林斯顿大学数学博士、芝加哥大学数学系教授邓煜正在看一本恋爱...