持续集成 持续集成中如何用自动化的测试的结果做为 jenkins 流水线 piplie 节点执行成功或者失败的条件

chase · 2021年07月14日 · 最后由 dasy 回复于 2021年07月16日 · 3843 次阅读

公司在搞 CI&CD,用 jenkins 做持续集成,
如何用接口自动化的结果,作为流水线 test 节点判断成功或者失败的条件呢?

共收到 7 条回复 时间 点赞

之前做过 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 中获取自动化测试的结果,做一个卡点判断

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册