• 软件测试下的AI之路(3)


    在这里插入图片描述

     
     

    在这里插入图片描述
    😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。
    📡主页地址:【Austin_zhai】
    🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。
    💎声明:博主日常工作较为繁忙,文章会不定期更新,各类行业或职场问题欢迎大家私信,有空必回。

    在这里插入图片描述

     
     

    1. 前言

    在这里插入图片描述
      随着科技日新月异的发展,人工智能正逐渐渗透到我们生活的各方各面,从智能语音助手到自动驾驶汽车,从智能家居到人脸识别技术,AI正以其卓越的智能和学习能力引领着新时代的发展方向。在这个快速演进的时代中,软件测试领域也受到了不小的冲击。虽然在当下,传统的软测技术仍然是绝对的主力,但是身为IT行业中的一员,近几年AI的全新业务体验与其超强的算力所带来的震撼感受也应该远超其他行业。所以为了跟上时代的步伐,作为软测的大家是不是也应该考虑如何让AI辅助我们更加完整高效的完成日常的各类质量保障工作呢?

      上一期我们介绍了mabl平台的整体功能与测试业务核心玩法,那么既然作为一个自动化测试服务平台,怎么能少了与CI/CD之间的集成场景呢?今天就由我继续来为大家介绍一下如何在CI/CD中有效集成并使用mabl平台。

     
     

    2. CI/CD集成

    在这里插入图片描述
      作为DevTestOps工作流中极其重要的一环,如何将CI/CD更加灵活完善的融入项目交付中的各类场景,一直是广大公司与团队的一项持久课题。而依托于现在一些主流的CI/CD软件的强大兼容性与接入能力,mabl自身的强大测试能力可以灵活被运用起来,在部署过程中集成mabl平台,那么相关的测试代码部署到 CI/CD 管道中的托管环境后就可以立即在多个浏览器中测试端到端用户体验。针对于测试活动中存在多个环境的情况,那么就更适合使用此类的集成方式了,因为它本身就是可以集成在CI/CD中进行跨环境运行测试任务。

      这里主要以目前主流的jenkins为介绍对象,其他的CI/CD软件环境本期暂不介绍。

     

    2.1 插件配置

      我们进行环境集成前需要先下载jenkins中的mabl插件,具体的地址为:mabl Jenkins 插件

      此插件可以帮助我们在自己团队的jenkins环境中运行mabl平台服务,并针对mabl服务进行一些灵活的调整。
     
    在这里插入图片描述

      安装的时候需要注意Java的版本不能低于8,Jenkins的版本不能低于2.319.1,不然在安装的步骤就会报错。

      安装的步骤与其他的jenkins插件相同,通过GUI或CLI中输入命令都可以,或者在上面给出的链接中下载完上传到你的Jenkins实例。

      安装完毕后,为了让jenkins可以顺利的接入mabl的服务,我们需要先配置一下mabl的API key。进入mabl选择侧边栏的Settings,进入后点击右侧画面的APIS选项,这个是管理所有API key的地方。点击Create API Key按钮,这里因为是用于CI/CD环境集成调用使用,类型一定不能选错哦。

    在这里插入图片描述

      完成后我们可以在API Keys列表中看见我们刚创建的API Key信息,具体的密钥值可以点击记录中的眼睛图标显示。

    在这里插入图片描述

      有了对应类型的API Key之后,我们就可以在Jenkins中创建对应的凭证,记得创建的时候要选择全局凭证,类型选择Secret text,ID随意,Secret内填入刚才在mabl中创建的密钥值即可。
    在这里插入图片描述
     

      这里需要注意的是,如果你的本地自动化测试环境与CI/CD中的不一样,前几期文章中提到的mabl的对应测试程序环境与测试用例中的被测对象一定要按照实际情况进行修改,以防出现换了个环境用例全部都跑不通的情况出现。具体的设置方法之前已经介绍过了,需要的同学可以去前几期看一下,这里就不再展开介绍了。

     

    2.2 mabl配置

      接下来我们为了顺利在Jenkins中出发mabl的任务,获取mabl中对应应用程序的ID则是必不可少的,这里可以理解为在Jenkins中触发mabl中的测试用例集,就必须调用对应被测对象的所属mabl应用ID,这个对应的ID可以在mabl的Settings中的workspace标签找到。
     
    在这里插入图片描述

      同样的,如果要获取资源的ID或者应用程序的ID,我们也可以在Tests中点击某一个测试用例集界面上方的命令行按钮。
     
    在这里插入图片描述

      这里同样会显示出测试用例集的ID和应用程序的ID,大家可以根据实际的测试需求来进行对应的任务触发和调用。另外还需要注意的是,如果你配置了某个用例集和应用程序的任务,但是将他在mabl中禁用了,那么在Jenkins中是不会进行触发和执行的。
     
    在这里插入图片描述

     

    2.3 Jenkins配置

      做完以上的这些步骤之后,我们就可以在Jenkins中进行对应的设置。这里是新建自由项目还是管道,还是使用旧的项目都是可以的,具体根据自己的情况判断。我们在构建页面中点击Add build step按钮,就可以在菜单中看到Run mabl tests的选项了。

     
    在这里插入图片描述
     
     

      选择后,在对应的构建步骤中,我们在API列表中选择之前在Jenkins中创建的API Keys。在应用程序ID或环境ID中选择一个,这里必须和你在mabl中存在的应用ID或者workspace ID对应上。
     
    在这里插入图片描述

      最后比较重要的就是mabl的管道添加,我们选择配置选项,然后在脚本框内插入对应的脚本即可。可以使用“Pipeline Syntax”工具来进行编写。可用的参数如下:

    applicationId:应用程序的ID,和之前的一样这里无论是填写环境ID还是应用程序ID都是可以的,选其一;

    continueOnMablError:当mabl执行出现错误的时候仍然继续处理;

    continueOnPlanFailure:当mabl中的用例或者计划失败仍然继续处理;

    environmentId:运行的环境ID;

    restApiKeyId:所需部署workspace的API Keys的ID,这里需要注意ID是Jenkins中分配给对应密钥的ID;

    labels:标签,可以为任务打上自定义的标签,执行的时候可以区分标签来继续执行;

    mablBranch:分支,指定的话会执行对应分支下的所有测试集和用例;

    如果管道语法中有不想要配置的参数项,需要置空,保留参数名。

     

    声明性管道

    mabl applicationId: 'APP-ID-a', continueOnMablError: true, continueOnPlanFailure: true, environmentId: 'ENV-ID-e', restApiKeyId: 'REST-API-KEY-ID'
    
    • 1

    脚本化管道

    node {
      stage('mabl') {
        step([$class: 'MablStepBuilder', restApiKeyId: 'REST-API-KEY-ID', environmentId: 'ENV-ID-e', applicationId: 'APP-ID-a'])
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

     

      我们在全部设置完之后就可以正常的运行Jenkins中的测试任务了,如果之前已经有了任务触发条件也不用做任何的修改,维持原状即可。

      Jenkins中的任务执行完成之后,我们可以在mabl中查看或者利用Junit插件来查看。插件的安装不再重复介绍,在构建步骤中添加Publish JUnit test result report,在下方的界面中配置报告XML的文件名,勾选Do not fail the build on empty test resultsr,然后保存。
     
    在这里插入图片描述

     

      之后运行每次的测试任务,完成时都会生成一份名为report.xml的测试结果报告,界面如下:
     
    在这里插入图片描述

     
     

    3. 后话

    在这里插入图片描述
      好了,以上就是mabl在现有的CI/CD环境中进行集成的所有基础操作和配置,大家也可以多多的进行尝试,当然mabl不仅仅对Jenkins有很好的集成,Bamboo、Azure、GitHub、Octopus也都有其对应的集成与调用方法,有兴趣大家可以去官网查看与学习。

  • 相关阅读:
    OkEDU-Classroom-Desktop在win下编译记录
    Triton推理服务器吞吐量测试
    macOS Sonoma 14beta 7(23A5337a)更新发布,附黑/白苹果系统镜像
    CentOS 7 - Linux 安装详解
    小波去噪算法的简易实现及其扩展(小波锐化、高斯拉普拉斯金字塔去噪及锐化)之一。
    吃透Chisel语言.20.Chisel组合电路(二)——Chisel编码器与解码器实现
    判断RecyclerView的条目是否满一个屏幕
    槽函数与信号连接
    OneFlow源码解析:算子签名的自动推断
    对面向对象OOP的理解
  • 原文地址:https://blog.csdn.net/weixin_38306507/article/details/132164896