• appium记录总结


    1. appium工作原理,生命周期,怎么执行的
    总体来说都是以appium服务端作为中转站,把测试脚本的指定传递给appium服务端,然后appium服务端再和底层工具进行通信
    底层工具和手机进行通信操作,操作完成后将结果反馈给appium服务端,服务端再将结果反馈给我们测试脚本
    安卓下:
    1. 4.2以上的机型用底层调用的uiautomator(AppiumBootStrap.jar)这个测试工具
    在测试脚本与appium服务端创建连接的过程中,会将AppiumBootStrap.jar这个包发送到测试设备上,并且启动AppiumBootStrap.jar
    创建一个socket服务,一直等待服务端传递命令,整个执行测试的过程就是和AppiumBootStrap.jar进行通信完成操作
    在执行完测试后测试脚本调用driver.quit()这个方法,来结束测试,并且结束设备上AppiumBootStrap.jar

    2. 4.2以下的机型底层用的seledroid这个测试工具
    在测试脚本与appium服务端创建连接过程中,会对原测试应用进行重签名操作,生成一个seledroid_xxx.apk,并将这个apk安装到测
    试设备上,以这个apk来操作测试的apk,那么服务端和seledroid通信是基于一个http的接口服务的,这个端口是8080
    3. 混合应用webview部分用的是chromedriver
    前提是我们的测试应用源码包中开启了webview debug模式
    混合应用在切换webview的时候会去启动一个chromedriver的http服务,这个服务端口是9515,appium服务端和chromedriver的服务进
    行通信,chromedriver与我们的apk中webview进行通信
    4. 手机web应用用的chromedriver
    前提是基于chrome内核的浏览器
    测试脚本与appium服务端创建连接的过程中直接创建一个chromedriver的服务,这个服务端口是9515,appium服务端和chromedriver的服务进
    行通信,chromedriver与我们的手机web进行通信

    ios下(xode8以下):
    1. 原生app的测试
    基于instruments的uiautomation来做的,测试脚本与服务端进行通信,服务端将测试指令翻译成uiautomation脚本传递给instruments,由
    instruments和手机测试应用进行通信,完成操作
    2. 混合app的测试
    前提是启动ios_webkit_debug_proxy -c 0e4b2f612b65e98c1d07d22ee08678130d345429:27753 -d 服务
    测试脚本在切换driver的时候,启动一个chromedriver服务,和应用的webivew进行通信
    3. 手机web的测试
    借助SafariLauncher这个app来完成safari浏览器的操作

    2. 显式等待和隐式等待的异同
    1. 相同点都是智能等待,在一定时间范围内不断查找元素,一旦找到立刻结束查找继续执行代码,没找到才会一直找到超时为止
    2. 不同点是隐式等待是全局性设备,并且可以随时更改,在更改后对之后的findxxx方法生效,对点击、输入、滑动之类的操作不起作用;
    显式等待仅仅针对单一元素生效,并且不仅仅是针对查找,也可以针对元素的某些属性进行自定义判断

    3. 多设备执行
    1. 安卓下多设备执行意味着每一个设备需要对应一个appium服务端,并且脚本部分需要实现多线程访问,appium服务端启动命令如下:
    appium -p 4490 -bp 3456 -U xxxx
    -p 表示服务端和脚本通信的端口
    -bp 表示服务端和设备的AppiumBootStrap.jar进行通信的端口
    -U 表示当前服务是针对哪一台设备的
    2. ios在xcode8以下不支持多设备执行原因是instruments不支持多实例

    4. testng框架
    1. 各个注解的作用以及执行顺序和次数
    注意注解指定的是配置文件中的标签,比如beforeTest指的是配置文件中的test标签执行前要做的初始化操作,其他类似
    beforeMethod和AfterMethod表示在每一个Test注解的测试方法执行前后都会被执行的
    2. 测试报告,测试日志及失败截图
    使用jenkins的testng插件,解析testng自己生成的报告,将失败截图放在jenkins所在的tomcat目录下,可以达到在html报告上看到截图的效果
    reportng报告
    testng-xlst的报告
    5. 如果要实现安卓和ios同时测试,需要一个mac电脑做服务端

    6. 自动化测试的环境
    1. 需要一台专职自动化的电脑
    2. 如果你的设备较多,需要集线器,电脑配置要高
    3. usb连接线质量要好

  • 相关阅读:
    Win2003 远程控制管理工具tsmmc 移植到XP连接多个服务器远程桌面的方法
    c++中new char(10) 和 new char[10]的区别
    64位ubuntu上安装 hadoop2.4.0
    g++编译安装
    atoi()函数实现
    LRU Cache
    Longest Palindromic Substring
    Java 中 == 和 equal 的区别 (String)
    抓取HTML
    验证码居中
  • 原文地址:https://www.cnblogs.com/yt1234/p/9573527.html
Copyright © 2020-2023  润新知