公司在搞 CI&CD,用 jenkins 做持续集成, 如何用接口自动化的结果,作为流水线 test 节点判断成功或者失败的条件呢?
之前做过 rf 框架,unitest 框架还有 pytest 框架的 Jenkins 集成,都是直接在 jenkins 中输入运行命令,jenkins 会自动根据你的运行结果来判断,然后返回成功或者失败,allure 框架集成进去也能返回结果
根据执行返回的结果判断。你可以试试使用 python 的 os.system() 去执行一下命令。jenkins 的应该也是这样判断
我能想到的办法就是将脚本中的运行结果存储到一个文件中的一个变量中,然后 Jenkins 读取该文件的变量。
1.首先可以通过 TestSummary 获取自动化用例的执行统计
TestSummary = junit testResults: "xml-results/*.xml", allowEmptyResults: true
2.获取细分执行结果
env.testTotal = TestSummary.getTotalCount() env.testFail = TestSummary.getFailCount() env.testSkip = TestSummary.getSkipCount() env.testPass = TestSummary.getPassCount()
3.接着判断 testFail >0 就可以 使用 error 抛出错误,那么当前 stage 就为 fail 了
你用的是 groovy pipeline 方式么?
如果是,那直接脚本里判断就好,可以是 shell 运行的 returnCode 是否为 0 来判定(运行失败一般 return code != 0),也可以脚本里把结果存到某个文件,pipeline 去解析文件进行判定。
只要抛个异常,这个节点就等于失败了
刚好有做,不过持续集成中嵌的是 UI 自动化,不是接口自动化,远程调用 UI 自动化然后返回测试结果的退出码
使用 groovy 脚本很方便的,CI 中获取自动化测试的结果,做一个卡点判断