cdn许可证_怎么选_物联网智能制造

企业应用 虚拟云 浏览

小编:随着越来越多的客户正从瀑布式流程转向精益、敏捷的流程,我遇到的常见问题是"如何测试我的electroniccommander更改,以便减少错误,从而减少生产服务器上的停机时间?"事实上,许

cdn许可证_怎么选_物联网智能制造

随着越来越多的客户正从瀑布式流程转向精益、敏捷的流程,我遇到的常见问题是"如何测试我的electroniccommander更改,以便减少错误,从而减少生产服务器上的停机时间?"事实上,许多公司都在使用electroniccommander平台来确保他们的开发人员构建的东西在部署到生产环境中之前经过了跨多个环境的全面测试。但是,您如何确保采取相同的预防措施,以便对electronicmander过程所做的错误更改不会导致您的内部开发管道宕机。毕竟,破坏构建CI工作流会损失开发时间,即使它不一定会影响外部客户。我们的服务团队经常遇到这个请求,因此我们提供我们自己的内部测试框架供您使用。您可以在我们的社区GitHub存储库中找到它。虽然我们在GitHub上发布的项目不受官方支持,但是我们会尽力解决您遇到的任何问题。框架由以下部分组成:将读取和执行测试的"ntest"Perl脚本。它与electricommander提供的ec perl 5.8.8兼容。一个"pm.断言"使测试不同断言更容易的模块一个名为电测pm使编写测试更容易。有一些例子的目录。在src/systemtest下的EC管理库中可以找到更多的真实示例如何编写测试:这个自述文件.md将为您提供有关如何运行和编写测试的详细信息,但这里有一个非常简短的示例,向您展示编写一个简单测试是多么容易。在本例中,我有一个工厂过程,用于创建项目并确保命名约定。因此,我的测试将反映"createSafeProject"过程是否正确工作:按要求创建项目拒绝名称以数字开头的项目拒绝名称中包含空格的项目这里有一些节选createSafeProject.ntest. 第一个测试通过使用名为"createSafeProject"的工厂过程简单地验证过程是否按预期创建:##全局变量my$PROJ="Ntest";#要测试的项目的名称my$PROC="createSafeProject";#要测试的过程的名称my$pid=$$;#生成半随机名称的进程id我的$goodName="foo$pid";\good project namemy$badName=$pid."foo";\bad project name我的$spaceName="foo$pid";\space的名称不正确##这里我们调用程序来测试ntest"$PROC:project with correct name",{},sub{my$xpath=$::N->runProcedure($PROJ"{procedureName=>"$PROC",实际参数=>     });assertOK($xpath,"运行$PROC过程");确保完成assertDef($xpath,"runProcedure finished without timeout-goodName");如果($xpath){#获取新作业IDmy$jobId=$xpath->findvalue("//jobId");waitForJob($jobId);标记新创建的项目,使其更易于查找$::N->setProperty("ec标记",{projectName=>$goodName,value=>"ntest"});现在验证项目是否存在我的$projXML=$::N->getProject($goodName);my$projectName=$projXML->findvalue("//projectName");assertEq($goodName,$projectName,"创建的项目$projectName");#干净$::N->删除项目($goodName);   }};第二个测试是验证名称以number开头的项目是否未创建:ntest"$PROC:project,名称以数字开头",{},sub{my$xpath=$::N->runProcedure($PROJ"{procedureName=>"$PROC",实际参数=>});assertOK($xpath,"运行createSafeProject procedure-badName");#确保它是正确创建的#确保完成assertDef($xpath,"runProcedure finished without timeout");如果($xpath){#获取新作业IDmy$jobId=$xpath->findvalue("//jobId");waitForJob($jobId);my$jobData=$::N->getJobDetails($jobId);my$outcome=$jobData->findvalue("//job/outcome");my$exitCode=$jobData->findvalue("//job/jobStep/exitCode");#测试结果=error且exitCode=1assertEq($outcome,国内云数据库,"error","项目$badName创建,尽管名称不正确");assert($exitCode,"==",1,"退出代码对于以数字开头的项目不正确");#干净$::N->删除项目($badName);}};第三个例子是检查项目是否不包含空格ntest"$PROC:PROC:project with name with space",{},sub{my$xpath=$::N->runProcedure($PROJ"{procedureName=>"$PROC",实际参数=>});assertOK($xpath,"运行createSafeProject procedure-badName");#确保它是正确创建的#确保完成assertDef($xpath,构建云数据库,"runProcedure finished without timeout");如果($xpath){#获取新作业IDmy$jobId=$xpath->findvalue("//jobId");waitForJob($jobId);my$jobData=$::N->getJobDetails($jobId);my$outcome=$jobData->findvalue("//job/outcome");my$exitCode=$jobData->findvalue("//job/jobStep/exitCode");#测试结果=error且exitCode=1assertEq($outcome,"error",内部云存储,"项目$spaceName创建,尽管名称中有空格");assert($exitCode,"==",2,"带空格的项目的退出代码不正确");#干净$::N->删除项目($spaceName);}};要调用ntest,使用"--target"选项指向commander服务器,只需添加包含*.ntest文件的目录(或文件列表)ntest—目标=ECSERVER:443个示例它应该产生类似于:$/ntest—目标=ecmaster:443个示例2014年12月8日星期一17:25:18太平洋标准时间:示例/创建项目.ntest:创建项目。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。通过2014年12月8日星期一17:25:18太平洋标准时间:示例/createSafeProject.ntest:检查项目"Ntest"是否存在。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。通过检查程序"createSafeProject"是否存在。。。。。。。。。。。。。。。。。。。。。。。通过createSafeProject:项目名称正确。。。。。。。。。。。。。。。。。。。。。通过createSafeProject:名称以数字开头的项目。。。。。。。。通过createSafeProject:名称为且带有空格的项目。。。。。。。。。。。。。。。。。。通过总测试时间:3秒测试总数:6个通过:6个失败:0个跳过:0所以现在你可以开始了:)如果你有任何问题或意见,云平台存储,打我! 想看看你能用电子指挥官做的更酷的事情吗?查看我在最近的DevOps企业峰会上的演讲,了解如何通过ElectricalCommander实现持续交付的最佳实践。

,国云数据

当前网址:http://www.vmchk.com/share/2021/0223/52007.html

 
你可能喜欢的: