乐趣区

关于测试:App自动化测试是怎么实现H5测试的

挪动端 app 自动化框架很多,然而有一些框架因为不反对混合利用测试,始终没有齐全风行。比拟典型的是经典的 Python 框架 uiautomator2, 这个框架简略好用,没有 appium 那样简单的 api 调用,受到不少 python 自动化工程师的青眼。

然而不论是官网文档,还是民间教程,根本都没有波及到用它做混合利用测试,本文提供一种非常简单的办法,只须要多加 4 行代码,就能让 uiautomator2 反对混合利用测试。

什么是混合利用

挪动端利用有两种典型的开发方式,一种是原生的 native app,一种是基于网页开发技术的 web app。原生利用的体验感更好,然而如果想同时开发安卓利用和 ios 利用,须要不同的原生开发技术。web 利用能够十分轻松的做到安卓和 ios 的跨平台开发,它的体验感要略微差一些,不像原生利用那么晦涩。

Hybrid App(混合模式挪动利用)是介于 web app 和 native app 之间的开发方式,能够在原生界面中嵌套网页,因此能够同时具备体验感和跨平台能力。

目前支流的挪动端 app 测试框架 appium 具备混合利用测试的能力,然而这个框架搭建和应用都比拟麻烦,封装的办法也没有那么 pythonic,因而有很多公司不想应用,他们更加喜爱简洁优雅的 python uiautomator2 框架。十分遗憾,这个框架目前没有反对混合利用测试。

WebView 自动化测试步骤

  • 第一步,通过原生操作进入 webview 网页;
  • 第二步,应用 selenium 等网页测试工具进入网页;
  • 第三步,应用 selenium 等网页测试工具测试。

这两头的关键步骤在于如何应用 selenium, 如果间接关上一个新的 selenium 会话,那么会关上一个新的页面,和 app 中的 webview 是离开的,因而无奈测到嵌套网页。selenium 必须要和 app 建设某种关系,使他们绑定在一起,操作 selenium 时就是间接操作 app 当中的网页。

通过 uiautomator2 进入 webview

这里就是最根本的 uiautomator2 操作,具体操作能够查看 官网文档,这里应用的 app 是 android bootstrap,能够间接 点击下载。

d = u2.connect()
d.app_start('com.github.android_app_bootstrap')
d(text='Login').click()
d(text='Baidu').click()

selenium 连贯 webview

APP 的第三个菜单能够间接关上 baidu 网页,从而到 webview 网页。如果不应用 selenium 连贯,间接通过 uiautomator2 定位网页中的元素,是会报错的。

那如何通过 selenium 连贯 webview 呢?

  • 首先,通过设施 d 获取以后操作的 app,从而失去包名
  • 而后,初始化一个 Chrome 浏览器对象
  • 须要留神的是,Chrome 对象须要增加额定的参数,指定连贯的设施,webview 绑定的报名,以及配置在 app 中应用 android 浏览器。

    之后的操作就和 selenium 做 web 自动化测试没有任何区别了,无非就是点击网页,做自动化操作:

driver = webdriver.Chrome('chromedriver_68.exe', options=options)
driver.implicitly_wait(8)

driver.find_element('id', 'index-kw').send_keys('你好')

WebView 自动化测试在浏览器中的阐明

是不是很好奇,我怎么晓得要这么写代码,能力连贯 webview,达到测试成果?其实世间没有那么多神秘的学习办法,只有你肯用心,肯定是能够找到学习的门路的。这段代码清清楚楚的写在 chrome webdriver 的官网文档中,只是,你可能打不开。截屏看一下:

其余 webdriver 的配置也能够查看 MDN web docs。

展现成果:


我是九柄,公众号【九柄】,分享软件测试文章、面试、教程材料,欢送来看看。

退出移动版