其实微信小程序不过是正常的webview而已. 只是产品概念上的不同. 本质还是h5. 
所以用appium是可以进行自动化的.

以我们某团外卖为例. 查看结构就可以看到小程序的dom结构. 

【转】appium测试微信小程序【转】

欢迎大家使用某团外卖小程序(此处应有广告词)

自动化用例的调整

  • webview的进程名是com.tencent.mm:appbrand1
  • webview的element需要通过devtool等工具进行分析

具体的细节可参考 微信 webview 的自动化技术

示例代码

简单写个demo给大家. 我本地是测试通过的. 代码是scala. 大家自行用自己的语言去实现吧. 

关键就是那句

val options = new ChromeOptions()
options.setExperimentalOption("androidProcess", "com.tencent.mm:appbrand1")
capability.setCapability(ChromeOptions.CAPABILITY, options)

测试用例代码

test("测试微信小程序") {
  val capability = new DesiredCapabilities()
  capability.setCapability("app", "")
  capability.setCapability("appPackage", "com.tencent.mm")
  capability.setCapability("appActivity", ".ui.LauncherUI")
  capability.setCapability("deviceName", "emulator-5554")
  capability.setCapability("fastReset", "false")
  capability.setCapability("fullReset", "false")
  capability.setCapability("noReset", "true")
  capability.setCapability("automationName", "appium")
  capability.setCapability("platformName", "android")


  val options = new ChromeOptions()
  options.setExperimentalOption("androidProcess", "com.tencent.mm:appbrand1")
  capability.setCapability(ChromeOptions.CAPABILITY, options)


  val url = "http://127.0.0.1:4723/wd/hub"
  val driver = new AndroidDriver[WebElement](new URL(url), capability)
  driver.findElementByXPath("//*[@text='发现']").click
  driver.findElementByXPath("//*[@text='小程序']").click
  driver.findElementByXPath("//*[contains(@text, '美团外卖')]").click
  println(driver.getContextHandles)
  driver.context("WEBVIEW_com.tencent.mm:tools")
  Thread.sleep(5000)
  println(driver.getPageSource)
  driver.findElementByXPath("//*[contains(@url, '美食')]").click()
  driver.findElementByXPath("//*[contains(., '金百万')]").click()

}


转自testerhome测试社区  原链 https://testerhome.com/topics/7053

相关文章:

  • 2022-12-23
  • 2021-10-09
  • 2022-01-30
  • 2021-12-05
  • 2021-11-08
  • 2022-12-23
  • 2022-02-03
  • 2021-12-05
猜你喜欢
  • 2022-12-23
  • 2021-11-23
  • 2022-01-02
相关资源
相似解决方案