最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 如何对微信小程序做自动化测试(图)教程

    1 背景

    微信小程序是流行的应用载体,很多小伙伴都有自动化测试的需求。由于腾讯的QQ、微信等都是基于腾讯自研的X5内核,而不是谷歌原生的webview,调试会稍微有点麻烦。差异(许多应用程序产品现在流行使用 X5 内核作为其嵌入式 Web 浏览服务)。

    需要注意的是,X5内核只支持手机,不支持模拟器。

    本教程以最主流的Appium自动化技术为例,讲解如何自动化测试微信小程序。

    2 准备工作

    >>> step1:打开微信小程序webview调试开关

    在聊天窗口中输入以下两个 URL:

    检查第二个 URL 打开的页面:

    >>> step2:安装UC开发者工具,识别小程序的页面元素信息

    Chrome自带的inspect工具需要访问外网才能识别小程序/内嵌网页。很多小伙伴不具备这样的条件,所以建议大家安装UC开发者调试工具,这样小程序的页面元素不用FQ也能识别。信息。

    下载链接:

    安装后如果小伙伴发现无法识别,可以进行如下设置:

    进入微信主页->向下滑动展开小程序列表->点击对应的小程序(这里以Lemon Class软件测试为例)

    这里我们可以使用工具获取元素的信息,编写定位表达式,比如定位元素[course]: //a[contains(text(),”course”)]

    >>> step3:确认微信小程序对应的进程名

    微信有很多进程,我们需要判断当前小程序在哪个进程(当前查询的是com.tencent.mm:appbrand0):

    这里需要注意:执行此操作时最好重启微信(清理后台应用,点击重新启动),目的是保证微信后台只有一个被测小程序,即与代码执行过程同步。

    >>> step4:chromeDriver驱动匹配

    微信小程序个人开通微信支付_微信小程序code无效_微信小程序只能用微信支付吗

    小程序本质上是一个网页,我们可以通过chromeDriver驱动小程序页面来执行。因为小程序使用的X5内核是腾讯重新开发的,所以chromeDriver驱动和webview版本的匹配并不严格按照Appium官方说明。匹配规则,这里测试了几个版本的chromeDriver,发现V2.40版本的chromeDriver比较合适:

    下载链接:

    下载后解压,将chromeDriver替换为Appium内置chromeDriver所在路径:

    Appium.exe的路径resourcesappnode_modulesappiumnode_modulesappium-chromedriverchromedriverwin

    3 编写脚本

    以Java语言为例,我们使用Maven项目管理工具将Appium的客户端库引入到项目中

    
        io.appium
        java-client
        7.0.0
    

    Appium启动App的常规代码这里不再赘述。这里需要注意的是,Appium除了需要常规配置deviceName、platformName、appPackage、appActivity等配置参数外,还需要添加以下配置参数来启动微信进行小程序的自动化测试:

    // 支持X5内核应用自动化配置
    desiredCapabilities.setCapability("recreateChromeDriverSessions", true);
    ChromeOptions options = new ChromeOptions();
    //com.tencent.mm:appbrand0为前面通过adb命令查询到的小程序进程名,同之前保持一致
    options.setExperimentalOption("androidProcess", "com.tencent.mm:appbrand0");
    desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
    // 初始化会默认将chrome浏览器打开,需要将Browser置为空
    desiredCapabilities.setBrowserName("");

    进入小程序可以按照通常的方式完成:

    启动微信进入首页->向下滚动展开小程序列表->点击对应的小程序

    进入小程序后,我们需要切换上下文:

    driver.context("WEBVIEW_com.tencent.mm:appbrand0");

    重点!!!切换上下文后,如果直接定位元素,会发现无法定位元素。这是因为小程序打开后会出现三个 Web 窗口:

    所以这里一定要记得切换(通过handle句柄):

    //需要找到正确的web窗口--腾讯课堂柠檬班软件测试(切换句柄)
    //获取所有的窗口句柄
    Set allHandles = driver.getWindowHandles();
    for (String handle:allHandles){
        //通过窗口的标题来判断
        if(driver.getTitle().equals("腾讯课堂柠檬班软件测试")){
            break;
        }else {
            //切换句柄
            driver.switchTo().window(handle);
        }
    }

    然后我们可以以通常的方式定位/操作元素:

    driver.findElement(By.xpath("//a[contains(text(),"课程")]")).click();

    4 总结

    微信小程序和普通的 Hybrid 应用进行自动化测试有很多不同,无论是开启 webview 调试开关的方式,还是小程序需要的特殊启动参数配置,以及 chromeDriver 和小程序 webview 的版本匹配。各种因素导致微信小程序。程序执行不是很稳定微信小程序code无效,切换webview的速度比较慢。随着微信版本的迭代更新,部分配置可能会失效。

    目前微信本身已经发布了支持小程序自动化测试的框架Minimum微信小程序code无效,但是坑很多。一些第三方的图像识别框架也可以支持小程序的自动化测试,比如网易的Airtest,它好用,但不是很准确和稳定。总的来说,目前微信小程序自动化测试的框架/工具还没有一个好用且足够稳定的框架/工具。当然,随着后续技术的升级,应该会涌现出很多优秀的工具。

    原版男神歪老师柠檬课软件测试

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 如何对微信小程序做自动化测试(图)教程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论