干货 | 携程机票前端UI自动化与持续集成升级实践

4.4 自动化测试集成 开启gitlab pages vim /etc/gitlab/gitlab.rb ##! Define to enable GitLab Pages pages_external_url "http://pages.gitlab.com/" gitlab_pages['enable'] = true gitlab_pages['inplace_chroot'] = true gitlab-ctl reconfigure 更新gitlab.yml文件 containers: - name 阅读详情

作者简介

 

JinG、YuWang,携程前端开发工程师,负责机票主流程预定React Native技术栈相关开发工作。

一、前言

随着携程机票APP全流程由Native技术栈转向RN(React Native,以下均称RN),同时引入了BDD的敏捷开发模式,以应对日益增长的产品需求。高速的开发迭代过程中,如何确保稳定且可持续的交付质量,显得尤为重要。本篇旨在介绍携程机票APP主流程团队使用与升级持续集成/持续交付(以下均称CI/CD)来兼顾前端开发高效率及高质量的实践。


二、机票APP主流程CI/CD


2.1 持续集成/持续交付

     

在软件工程中,持续集成是一种在保证质量的前提下将每天新增代码合并到共享主线中的做法。持续交付是一种能够使得软件在较短的循环中可靠发布的方法。

传统的持续交付过程着重于代码的安全交付,对于持续交付流程的执行效率没有足够重视,往往使得整个持续交付过程时间成本过高。对于前端工程而言,传统的持续交付缺乏快速、便捷、及时响应的UI自动化测试方案,页面展示的正确性难以得到保障。

面对这些问题,携程机票通过采用更为高效的CI/CD策略,实现快速、便捷、及时响应的UI自动化测试方案,达到了从代码提交到发布上线的全UI闭环的持续交付效果。

2.2 机票主流程前端开发现状

本次CI/CD升级实践前,机票APP主流程前端流程中,开发人员完成功能开发后,大致有以下几个步骤:

1)在代码仓库上提交代码时,会进行CI检测,通过后会合并进主分支;

2)QA通过发布平台进行测试环境的打包部署等操作;

3)QA进行手工测试,并进行本地UI自动化脚本测试,测试完成后进行结果反馈;

4)通过测试,进入下一步的生产发布流程。

主流程CI/CD流程图

整个过程,虽然使用了自动化手段,但是,还是存在一些问题:

1)人工干预过多:平台的发布、部署,运行UI自动化,这些重复的固化步骤都需要人工参与;

2)发布回归成本高:在每周常规发布两次的节奏下,人力回归测试加上集成反馈链路过长,都会增加验证成本;

3)UI自动化测试参与度不够:整个测试过程中,手工测试占比大,UI自动化测试由于用例数量庞大以及真机运行效率瓶颈,仅在测试阶段进行辅助测试,并不能保证UI功能验证的完整度,远没有发挥真正的效用。

     

我们针对这些问题进行了流程改进。


2.3 携程机票CI/CD改进后流程


改进后主流程CI/CD流程图


与之前相比,开发阶段:

1)CI检查的过程中增加了ESLint校验和增强了UT检验,可以在根源上排除低质量却难以发现的bug;

2)自动发布免除繁杂的人力操作和漫长等待编译的过程;

3)增加了自动触发CRN-WEB的UI自动化测试,使得UI自动化测试提前介入,将简单功能提前进行测试,早一步发现问题,减少测试成本和沟通成本。

测试阶段:

由原来的手工测试为主,UI自动化测试为辅,切换成UI自动化真机测试为主。

关于最大效率发挥UI自动化的作用,自动打包发布等,会在下面的内容里进行详细介绍。


三、CI检验完善


3.1 完善检验机制

     

完善CI检验机制,可有助于问题暴露前置,避免无必要的排查成本。除基本的针对TypeScript代码规范的ESLint检测,加强了对UT的检测,在达不到指定阈值时,拦截分支合并,通过规范性要求和自动化CI检验保障代码的质量。


3.2 提高检验效率

     

CI检测基本是一个串行的流程,但中间的一些检验过程可以并行,缩减检验时间,例如:TSC、UT以及ESLint校验并行运行:

优化效果:

1)每个stages的检测内容一目了然,某个job出现问题也能够迅速定位。

  Pipeline运行结构图

2)TSC、UT、ESLint并行运行后,build阶段仅需1min59s,相较串行执行的5min48s,节约了3min49s;串行下的整体平均耗时为8min,改为并行后的平均耗时为4min,提升了50%的执行效率。

Jobs耗时图


四、UI自动化测试

     

实现CI/CD,需要全网自动化回归来保证质量,而UI自动化测试是前端测试中针对业务逻辑自动化测试的有效方法。针对UI自动化测试实施复杂、运行慢、排查问题效率低的问题,携程机票在一步步的升级过程中通过不断自研和完善测试工具,实践得出了较好的解决方案。


4.1 MOCK平台

     

在UI自动化的测试过程中,数据的稳定性是UI自动化测试能否顺利进行的决定性条件之一。机票业务数据存在高度的变化性,前一时间段存在的航班数据下一刻可能就发生了改变,数据的变化将导致原有的自动化用例无法正常运行。同时在开发过程中,服务端的需求功能也会导致数据变化。

     

为解决数据问题,提高UI自动化测试的稳定性,引入内部自研的Mock平台,达到以下目的:

1)稳定不变的数据

2)不受服务端影响的数据环境

3)快速响应的UI界面


4.2 分布式UI自动化平台

为了解决UI自动化本地单机运行慢,占用设备和人工资源的问题,部门内部搭建了一套UI自动化分布式运行平台,由原来的本地单台设备运行改为平台共享多台设备并行运作的模式,运行时长由原先的4小时减少到现在20分钟左右。

     

平台上支持任务、设备和项目的管理,选择需要运行的用例,待用例执行完成后可以查看报告,报告中有相应失败界面截图,便于分析排查问题。

另外,平台可以制定每日定时任务,将每天测试环境更新的功能接入监控。

平台用例报告汇总样例图


4.3 自动化框架


4.3.1 MEC框架

    

BDD(行为驱动开发)是一种敏捷软件开发的技术,鼓励开发者、QA和非技术人员之间的协作,为保障质量携程机票落实了BDD开发模式。部门内部基于Cucumber和Macaca自研了真机运行的UI自动化框架MEC(Macaca Eating Cucumber),便于QA人员使用自然语言编写自动化测试脚本。

MEC框架结构图

每条自然语句对应一个可执行的方法,以下是用MEC编写的脚本示例:

@p1
   场景大纲:筛选航空公司
        假如 启用MockCase[<caseID>]
        当   跳转页面到[<列表页>]
        并且 筛选[航空公司]为[选择条件东方航空]
        那么 列表页航班按航空公司[东航]筛选
        并且 移除MockCase




    例子:
        | caseID  | 列表页             |
        | 17470891 | 单程列表页上海-北京 |

国内筛选航空公司用例脚本


4.3.2 Airtest自动化测试工具

上述框架中采用的Macaca是UI自动化测试工具中常用的一种,也可以使用其他自动化测试工具进行替换,对此,部门内部也正在尝试使用其他的同类型工具,如:Appium、Airtest等进行试验。Airtest是网易开发的UI自动化测试工具,目的是通过所见即所得、截图点击等功能,简化测试代码编写工作。

就目前的测试结果来看,Airtest版相较Macaca版具有以下优势:

1)更快的执行速度:查找单个元素可节省约1-3秒的时间,整体用例执行时间可节省75%以上;

2)更丰富的验证功能:Airtest可支持图像比对。

     

以下是同等用例运行时间对比:

Macaca版运行耗时

       Airtest版运行耗时

基于以上优势,接下来底层运作会迁移到Airtest工具上,而得益于自然语言翻译脚本运行的特性,用例集切换Airtest工具上无需增加成本,且可以进一步提高运行效率,获取更多便利。

    

通过选择不同的测试工具,提升了运行效率,从而带给我们思考还有什么方法可以让UI自动化测试运行的更快?下一节的PAC框架则是一个新的方法。


4.3.3 多进程PAC框架

     

目前,机票APP主流程UI自动化用例集数千个,需求覆盖率95%以上,通过接入自动化平台,虽然解放部分设备和人力,但是还存在运行时间过长,过度依赖设备,多端差异兼容等问题。

     

携程机票APP主流的RN项目都是使用内部开发框架CRN进行的,在这基础之上,为了打通项目在iOS、Android、H5三端运行效果,使用内部CRN-WEB框架的同时,自研了多进程UI自动化框架--PAC框架,PAC(Puppeteer And Cucumber)属于MEC BDD测试自动化框架的衍生品,通过Headless Chrome的工具Puppeteer,改善目前UI自动化测试的瓶颈。

PAC框架架构图

通过PAC框架,原先编写的UI自动化测试脚本,可以零成本的对接运行在WEB端,这也为后期UI自动化测试的提前介入打下基础。

优势:

1)缩短的运行时间,将每个UI自动化项目总运行时间缩短在分钟级

2)完全脱离客户端,降低对设备的依赖

3)解决现有的多端差异兼容和环境问题

4)现有Cucumber用例无缝切换,无需再次编写转换

CRN-WEB执行UI自动化项目运行总耗时


五、集成自动发布和UI测试


一个完整的持续构建系统包括三个部分:一个自动构建的过程(比如安装依赖自动编译、代码质量检查、单元测试,自动发布等)、一个代码存储库(构建过程的素材库)、一个持续集成的服务器(自动执行构建的流水线)。以下2点正是对其中的自动构建过程的完善。

5.1 平台自动打包发布

     

基于发布系统,当代码merge进入主仓库时,进行CRN和CRN-WEB的自动化发布,以及测试环境的部署。

      

发布平台的CLI工具提供打包功能,对其封装调用。发布完成后,GitLab-CI构建结果上传提供给下游job使用,中间出现问题时,会通过内部IM、邮件形式推送给相关人员。

自动打包流程


5.2 自动触发UI测试

    

job开始前,使用上游自动打包产生的中间结果,拉取指定测试版本,自动触发平台UI自动化测试任务,执行完成后,使用预设阈值校验自动化通过率,并及时反馈。

自动触发UI自动化测试流程

     

结合上面两项,在项目.gitlab-ci.yml文件中增加两项Job:分别对应自动化发布和自动化UI测试。任何成员commit push均会触发Pipeline,经过UT、UI自动化等检测,Pipeline整体通过后,才能触发merge request的状态改变,进行merge操作,进一步保障代码质量,一系列流程耗时仅7min左右。整个Pipeline流程如下图所示:

Pipeline流程


六、总结

      

随着敏捷开发的推动,让每一次提交的代码进行一次完整的编译、测试、打包、发布,及早的发现并修复问题,保证研发质量的同时快速迭代产品,持续集成(CI)、持续交付(CD)在此中就是要体现出这样的价值。

      

在CI/CD升级实践中,针对CI检测和UI自动化测试等进行了一系效率和质量的优化,以实现最低成本的最高效测试。引入Lint检测和UT测试这种本身低成本的校验,缩短检测时间,而UI自动化这种成本比较高的检测,也利用UI自动化平台和CRN-WEB而达到多频次的测试。在代码合入主分支前,就进行发布、UI测试,提高了检测力度,减少了代码回退风险,使得UI自动化在前端集成中发挥了重要的作用,形成UI测试的闭环。

现在,机票APP主流程UI自动化测试用例覆盖率达到95%,由原来一组数名QA人员存在测试资源的紧张情况,到现在1名QA人员也能够完全承担起整组测试任务的状态。


6.1. 提升测试效率

用例执行耗时图

通过从单机执行到CRN-WEB多进程并行执行的升级,UI自动化的执行效率得到了大幅提升,从最初的超过4小时到最终将执行时间控制到分钟的级别,实现了真正的高效、便捷、及时响应的UI自动化测试方案。

自动化测试用例覆盖图

现阶段携程机票的测试用例UI自动化覆盖率已达到了95%的水平,分钟级别的高效UI自动化方案大幅提高了测试的效率,为快速迭代、低成本发布提供了有力支撑。


6.2 降低发布成本

发布成本对比图

发布成本的降低也十分明显,最初每次发布需要投入1名测试人员手工回归,自动化测试替代人工测试后,回归测试实现了0人力投入;回归测试的时间成本也在不断的升级优化中一步步降低,在采用分布式执行UI自动化回归后发布准备的时间成本降到了2小时左右。

【推荐阅读】

携程技术新上市图书

《携程架构实践》《携程人工智能实践》

本周满100-50元优惠活动进行中,

扫下方二维码进

↓↓↓

     

 “携程技术”公众号

  分享,交流,成长

TCGA之GDC-client工具下载安装与使用 文章主要是对GDC-client工具下载TCGA数据库数据整个过程的一个记录 1.下载GDC-client工具 GDC-client工具网址:GDC Data Transfer Tool | NCI Genomic Data Commons (cancer.gov) 我这里下的是上图中红圈中的版本, 2.解压安装 从网上了解的是不能解压到带中文的路径里,解压后是一个.exe文件,为了能直接在cmd命令行下使用,将其加入系统环境: 点击新建之后,输入将文件解压到的路径,然后... 阅读详情

相关推荐

Jenkins插件下载慢?3分钟搞定国内镜像加速(含华为/腾讯/清华源对比)

本文详细介绍了如何通过国内镜像源加速Jenkins插件下载,包括华为云、腾讯云和清华源等主流镜像站的性能对比及一键配置方案。通过实测数据展示华为云镜像站表现最佳,下载速度达19.4MB/s,并提供sed命令、管理界面配置和Docker定制三种高效加速方案,帮助开发者快速解决插件下载慢的问题。

sql99的博客 320

记录下Flybirds移动端ui自动化框架的搭建

7.IOS连接方式与安卓不太一样,需要通过tidevice连接WebDriverAgent,USB数据线连接IOS手机,运行命令:tidevice -u [设备udid] wdaproxy -B [wda的bundleid] --port 81007.IOS连接方式与安卓不太一样,需要通过tidevice连接WebDriverAgent,USB数据线连接IOS手机,运行命令:tidevice -u [设备udid] wdaproxy -B [wda的bundleid] --port 8100。

qq_33719152的博客 1121

Rclone替代RaiDrive?零广告免费挂载Alist WebDAV到Windows资源管理器(含自启脚本)

本文详细介绍了如何使用开源工具Rclone替代RaiDrive,实现零广告、全免费的Alist WebDAV挂载方案。通过深入解析配置参数、提供完整的自启动解决方案和解决常见问题,帮助用户在Windows资源管理器中高效管理云存储,提升使用体验。

weixin_33709364的博客 636

android开发之Jenkins并行完成UI的自动化测试

Jenkins并行完成UI的自动化测试

ZaneLove's blog 3569

Centos7.9使用kubeadm部署K8S集群

使用kubeadm部署一个k8s集群,单master+2worker节点。

lldhsds的专栏 1302

unity中判断是否联网,判断网络状态的两种方式

unity中判断是否联网,判断网络状态的两种方式

wla2996gpy032的博客 1876

干货 | 1分钟售票8万张!门票抢票背后的技术思考

作者简介HongLiang,携程高级技术专家,专注系统性能、稳定性、承载能力和交易质量,在技术架构演进、高并发等领域有丰富的实践经验。一、背景去年疫情后,为了加速启动旅游市场,湖北在全域...

携程技术 1042

告别切换烦恼!用Parallels Desktop的Host-Only网卡,在macOS上直接访问虚拟机里的公司内网

本文详细介绍了如何在macOS上使用Parallels Desktop的Host-Only网卡直接访问虚拟机内的公司内网,告别频繁切换操作系统的烦恼。通过配置Host-Only网络模式,实现主机与虚拟机的安全高效通信,特别适合需要频繁访问内网资源的IT从业者。文章包含分步指南、自动化脚本和常见问题解决方案,帮助用户优化工作流程。

weixin_28739079的博客 363

【Web UI自动化测试】Web UI自动化测试之框架篇(全网最全)

概念:UnitTest是python自带的一个单元测试框架,用它来做单元测试自带的框架:不需要单独按照,只要安装了 python就可以用第三方框架:想要使用 需要先安装后使用(如:pytest)单元测试框架:主要用来做单元测试,一般单元测试是开发做的。对于测试来说,UnitTest 框架的作用是自动化脚本(用例代码)执行框架(使用UnitTest框架来管理 运行多个测试用例的)1)TestCase(测试用例):组织用例文件(TestCase)里面,书写 跳过、断言、参数化,使用Fixture夹具;

测试界的彭于晏的博客 1万+

把机器学习“搬进”数据库:SAP HANA PAL 快速上手与 ABAP AMDP 实战

摘要:本文探讨了SAP HANA PAL(Predictive Analysis Library)在企业数据分析中的实践应用。PAL通过将机器学习算法下推到数据库内部执行,有效解决了大数据量场景下的数据搬运瓶颈和治理成本问题。文章详细介绍了PAL的核心功能(包括聚类、分类、回归等10类算法)、使用前提(版本、组件和权限要求)以及通过AMDP实现ABAP与PAL集成的技术方案。重点阐述了参数表设计理念和两个典型应用场景:利用PageRank算法分析企业权限网络关系,以及通过PAL_SCALE进行特征预处理。文

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5738

单反相机物镜设计[DG-10]

REAR(要打在像面,操作数要找像面对应位置15):以透镜单位表示的真实光线径向坐标,波长由Wave定义,参见“Hx、Hy、Px和Py”。最小玻璃厚度最小不能小于semi-dia的1/10,要根据layout看有没有过厚过薄,反复调节。PROD:两个操作数的乘积(操作#1 X操作#2)。3x4就是57.3x0.41=23.5。拦光一般在第一面和最后一面操作,减少边缘无用光线。光阑面与镜面贴近,要调距离,同时设置光阑像差。后截距是指从镜头后表面到焦点的距离。CONS:弧度转为角度。镜头相互嵌入,有错误。

weixin_72050316的博客 600

《携程技术2020年度合辑》,送给爱学习的你

01序言 2020年跌宕起伏,突如其来的疫情对旅游行业造成了前所未有的冲击,也让更多人进一步感受到技术互联互通的重要性。对于旅游业技术人而言,外部的不可控因素让我们更加聚焦于系...

携程技术 728

agent-browser 安装笔记(OpenClaw)

【代码】agent-browser 安装笔记(OpenClaw)

tiantiantbtb的博客 1241

前端自动化UI测试的完整方案

开发公共平台项目,测试资源相对比较少,因此对开发者自身而言,为了维护项目的稳定性,需要对平台做各类测试,即使有测试环境,但是也很容易缺乏测试场景导致带着bug上线的情况。 因此我们需要做完整自动化测试方案,来避免这类常规错误,提高平台的可用性和稳定性。

人生不怕起点低,就怕没追求 1490

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

UI自动化测试框架的搭建,超详细总结

通过上面几步 一个模块的ui测试流程基本讲解完成,这个框架的目的就是便于维护,里面也可以添加 api 及 数据源的操作,数据库的关联等,,可以用于功能测试,也可按复杂的业务流程编写测试用例,今天此篇文章不过多讲解如何实现CI/CD,只讲解自己能。,需要阅读者有一定的java语言基础,文档中的有些注解我就不详细介绍了,感兴趣的可以去java官网查看。

huace3740的博客 1215

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

web自动化测试第21步:UI自动化框架结构以及思路

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

田晨丿ggss 378

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python的ui自动化框架搭建

总结当前代码优缺点:1.代码冗余太高,每个功能测试都会写大量的重复代码。每个用例都要打开关闭一次游览器,效率低2.代码耦合度太高,页面稍有变动则需要修改大量的源码。前端修改页面后,需出现修改定位信息业务流程发生改变后,测试流程要重写conftest.py为pytest的共享夹具,pytest自动发现并执行。​# 最大化游览器# 返回游览器对象,不能使用return,return返回之后会关闭游览器,无法进行后续操作yield wd。

m0_65657661的博客 8097

Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构

1、Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_page import Login_Page from HTMLReport import logger import time def login(driver, username, passwo...

weixin_30367945的博客 593

如何实现前端项目的自动化测试?一文4个步骤带你成功实现!

什么是UI自动化?为什么使用UI自动化?1、什么是UI自动化?本质上来说,UI自动化测试,就是通过脚本或工具代替人工去执行功能测试用例,自动完成测试用例的执行工作。常用于验证用户界面的功能、兼容和稳定性等,主要用于执行回归测试。UI自动化测试,可以模拟用户与应用程序或网站的交互,自动执行用户界面上的操作,如点击按钮、输入文本、选择选项等,并检查应用程序或网站的响应和行为是否符合预期,在软件开发过程中帮助检测是否存在bug。

2301_77709772的博客 473

UI自动化测试框架:PO 模式+数据驱动(超详细)

PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。PO 模式的设计思想与面向对象相似,能让测试代码变得可读性更好,可维护性高,复用性高。PO 模式可以把一个页面分为三个层级:对象库层、操作层、业务层。对象库层:封装定位元素的方法。操作层:封装对元素的操作。业务层:将一个或多个操作组合起来完成一个业务功能。

HUA1211的博客 8076

UI自动化测试(一)

通过断言,可以将测试用例的预期结果和实际结果进行比较,并在测试失败时立即报告错误,以便快速定位问题和修复缺陷。浏览器打开的窗口其实会有一个叫句柄的概念。句柄就类似于每一个标签页的id一样,是唯一的。根据name属性的值来定位,但是如果name属性的值在当前页面不唯一,则是无法定位的。如果某个元素的有id属性,那么如果id属性的值唯一,则可以利用该属性的值定位。如果id属性的值是一串无序的字母或者数字,则不能使用,有可能是动态id。class属性的值,不唯一的可能性很大。谷歌、火狐、edge。

weiyouNL的博客 994

一文带你学习前端 - 自动化测试

前端自动化测试,vue单元测试

不想起床 2752

一文让你了解UI自动化测试

因为我们是属于App的一个渠道方,Native方面并不是我们组内人员开发的(其实主要大公司在代码方面管得很严无法拿到Native的iOS和Andriod的代码所以这个需要和他们管沟通,不然无法做App的UI自动化),我们的前端开发主要做的是里面的H5页面,并且手机端的需求现在还经常有变化,所以手机端的UI自动化还不纳入UI自动化的执行范围,我们主要做的是PC Web端的UI自动化。自动化脚本只有20%的作用,最重要的是测试案例的选取,一切的测试依据都来自于测试案例,记住自动化的用处,是用来找快速找缺陷的。

HUA1211的博客 530

一文带你了解UI自动化测试框架

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

weixin_71807218的博客 296

干货 | 敏捷模式下携程的接口自动化平台演变

作者简介Tony,携程高级测试开发经理,负责自动化测试框架及平台类工具开发。一、引言现有的接口自动化测试实现,多以使用代码工程项目的形式,借助第三方软件测试编程框架,手工编写自动化测试...

携程技术 660

试试前端自动化测试(基础篇)

测试其实就是在已经开发完成的软件之上采用人工或非人工的方式验证软件是否符合工程预期,是否会造成用户/开发商损失等潜在问题的一种方式。大多数情况下,我们编写的前端代码都是开发手工自测,又或是提测后由专门的测试人员手工测试。手工测试当然也是没有问题的,但是通过自动化的测试工具,可以更加快速高效且准确定位问题所在。自动化测试实际上是运行一段测试代码,去验证目标代码是否满足某个期望。本文后续的内容中,“测试”一词将专门指代自动化测试。

nhb687096的博客 943
上一篇: 干货 | 10W+ K8s容器数量下,携程如何打造统一弹性调度体系
下一篇: 程里人 | 写书背后那些不为人知的故事
携程技术
博客等级 码龄10年 3716粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值