51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【周活动】 找茬--心里圈的故事 !【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【109期】:python爬虫的魔力 !双11剁手不吃土,来投稿赚回血红包! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 2985|回复: 1

[Appium] Appium 使用 appium 进行微信小程序的自动化测试

[复制链接]
  • TA的每日心情
    慵懒
    2019-8-9 10:30
  • 签到天数: 496 天

    连续签到: 1 天

    [LV.9]测试副司令

    发表于 2017-1-16 16:23:37 | 显示全部楼层 |阅读模式
    文章出处:testerhome转自:https://testerhome.com/topics/7053
    实微信小程序不过是正常的webview而已. 只是产品概念上的不同. 本质还是h5.
    所以用appium是可以进行自动化的.
    以我们美团外卖为例. 查看结构就可以看到小程序的dom结构.


    自动化用例的调整
    • webview的进程名是com.tencent.mm:appbrand1
    • webview的element需要通过devtool等工具进行分析示例代码
      简单写个demo给大家. 我本地是测试通过的. 代码是scala. 大家自行用自己的语言去实现吧.
      关键就是那句
      1. val options = new ChromeOptions()
      2. options.setExperimentalOption("androidProcess", "com.tencent.mm:appbrand1")
      3. capability.setCapability(ChromeOptions.CAPABILITY, options)
      复制代码
      测试用例代码
      1. test("测试微信小程序") {
      2.   val capability = new DesiredCapabilities()
      3.   capability.setCapability("app", "")
      4.   capability.setCapability("appPackage", "com.tencent.mm")
      5.   capability.setCapability("appActivity", ".ui.LauncherUI")
      6.   capability.setCapability("deviceName", "emulator-5554")
      7.   capability.setCapability("fastReset", "false")
      8.   capability.setCapability("fullReset", "false")
      9.   capability.setCapability("noReset", "true")
      10.   capability.setCapability("automationName", "appium")
      11.   capability.setCapability("platformName", "android")

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

      15.   val url = "http://127.0.0.1:4723/wd/hub"
      16.   val driver = new AndroidDriver[WebElement](new URL(url), capability)
      17.   driver.findElementByXPath("//*[@text='发现']").click
      18.   driver.findElementByXPath("//*[@text='小程序']").click
      19.   driver.findElementByXPath("//*[contains(@text, '美团外卖')]").click
      20.   println(driver.getContextHandles)
      21.   driver.context("WEBVIEW_com.tencent.mm:tools")
      22.   Thread.sleep(5000)
      23.   println(driver.getPageSource)
      24.   driver.findElementByXPath("//*[contains(@url, '美食')]").click()
      25.   driver.findElementByXPath("//*[contains(., '金百万')]").click()
      26. }
      复制代码

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-25 13:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2017-12-25 13:34:43 | 显示全部楼层
    getPageSource 这个在哪里?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2019-12-15 19:34 , Processed in 0.062719 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表