软件测试是软件开发生命周期(SDLC)过程中的关键阶段。早期测试可以为软件开发人员节省大量成本和精力,而低质量的软件会对用户参与度产生负面影响,从而降低客户保留率。因此,构建无错误的软件以增加销量并使软件产品更受欢迎至关重要。今天有不同类型的测试,例如冒烟测试、完整性测试、集成测试、回归测试、单元测试和API测试。回归测试是最重要的测试类型之一,尤其是在向现有应用程序添加新功能或更新时。什么是回归测试?回归测试确保新代码更改不会对现有功能产生不利影响。由于最新的代码更改而出现的任何问题都应该在此类测试中发现。1.自动化在回归测试中的作用与完整性测试和冒烟测试不同,回归测试的范围很广,因为质量保证(QA)必须测试整个应用程序或功能的子集。考虑到手动回归测试需要大量的时间和精力,不符合成本效益。这就是为什么大多数企业选择自动化回归测试的原因。敏捷团队中的回归测试通常采用基于风险的方法,选择测试自动化框架来简化测试过程。2.回归测试的类型回归测试可分为功能回归测试和视觉回归测试。从根本上说,两者的工作方式不同,如下所述。(1)功能回归测试功能回归测试是一种使用手动或自动化工具来测试工作流或用例的测试。它涉及通过从浏览器DOM获取选择器来输入一些值。这还包括通过以编程方式或手动方式检索基于文本的值来验证它们。实践中的大多数现代测试都基于这种方法。(2)视觉回归测试视觉回归测试检查执行任何代码更改后用户将看到的内容。这是通过比较代码更改前后截取的屏幕截图来完成的。这就是为什么视觉回归测试有时被称为视觉快照测试。视觉测试突出显示代码更新后发生的任何视觉变化。视觉测试生成、分析和比较浏览器快照以检测是否有任何像素发生变化。这些像素差异称为视觉差异(有时称为感知差异、pdiff、CSS差异或UI差异)。用户可以设置一个阈值,这使得它可以灵活地比较具有微小差异的图像或忽略微小差异。使用Cypress进行视觉回归测试Cypress是一种流行的测试自动化框架,具有很大的可扩展性。视觉回归测试是Cypress的可扩展功能之一。Cypress中有许多插件可用于捕获视觉图像并进行比较。本教程介绍了使用CypressImageDiff插件的Cypress视觉测试。1.CypressVisualRegression分步教程要搭建CypressVisualRegression环境,需要安装以下组件:安装NodeJS。安装VisualStudio代码。安装赛普拉斯。(1)第一步:安装CypressImageDiffnpm包。导航到项目根文件夹(package.json所在的位置)。输入以下命令:npmi-Dcypress-image-diff-js(2)第2步:配置图像差异插件。导航到cypress/plugin/index.js并输入以下命令:JavaScript1//cypress/plugin/index.js2module.exports=(on,config)=>{3constgetCompareSnapshotsPlugin=require('cypress-image-diff-js/dist/plugin')4getCompareSnapshotsPlugin(on,config)5}(3)第三步:导入并添加Cypress镜像命令。导航到cypress/support/commands.js并输入下面编写的代码:JavaScript1//cypress/support/commands.js2constcompareSnapshotCommand=require('cypress-image-diff-js/dist/command')3compareSnapshotCommand()(4)第四步:配置reporter。导航到cypress/support/index.js并输入下面编写的代码:JavaScript1after(()=>{2cy.task('generateReport')3})(5)第5步:编写您的第一个Cypress视觉测试。导航到cypress/integration文件夹并添加一个新文件examplevisual-test.js。输入下面编写的代码片段:JavaScript1//visual-test.js2describe('CypressVisualTesting',()=>{3it('ComparefullpageofGooglepage',()=>{4cy.visit("https://www.google.com/?hl=hi");5cy.compareSnapshot('google-page');6})7})上面的代码导航到Google主页并比较其视觉效果。(6)第6步:使用Cypress运行第一个视觉回归测试。使用以下命令运行C??ypress可视化测试。npxcypressrun--spec"cypress/integration/visual-test.js"(7)第七步:查看报告。这个插件的一个关键特性是它生成一个漂亮的HTML报告。运行测试后,会创建两个文件夹:cypress-visual-report:包含一个HTML报告,如果测试通过,则不会显示任何图像,如果测试失败,则会显示图像的基线(baseline),比较(comparison)和差异(diff)。cypress-visual-screenshots:该文件夹包含三个子文件夹,baseline、comparison和diff,每个子文件夹都包含自己的图像文件。通过的测试报告如下图:失败的测试报告如下图:2.如何对元素进行Cypress视觉测试Cypress可以用来对特定元素进行视觉测试,其中比较指定元素前后的屏幕截图,如下例所示。JavaScript1describe('Visuals',()=>{2it('应该比较给定元素的截图',()=>{3cy.visit('www.google.com')4cy.get('#report-header').compareSnapshot('search-bar-element')5})6})此代码段截取元素#report-header的快照,并对其进行视觉比较。3.为视觉测试添加一个阈值默认情况下,阈值为零,这意味着它应该与基本图像完全匹配。但是,可以通过应用其他阈值使其更加灵活。使用BrowserStack执行Cypress视觉对比测试要在像BrowserStack这样的真实设备云上运行Cypress视觉对比测试,您需要按照以下步骤操作。(1)第一步:安装BrowserStackCypress插件。(2)第二步:使用browserstack-cypressinit命令创建browserstack.json文件。(3)第三步:复制粘贴以下代码。JSON1{2“auth”:{3“用户名”:“
