使用Jenkins和x2B实现测试自动化;机器人框架
我们使用Jenkins进行持续集成 我还为robot框架测试用例创建了一个Jenkins作业。但是我在使用Jenkins运行robot框架测试用例时遇到了一个问题 比如说,如果我必须在Jenkins job for robot framework中包含大约300个测试用例,在运行测试用例时,如果任何测试用例失败,那么剩余的测试脚本将无法执行 例如:在运行测试用例时,如果第10个测试用例失败,那么剩余的290个测试用例将不会被执行 在Jenkins中,有没有更好的选择以并发方式运行所有测试用例因此,任何测试用例的失败都不会影响其他测试用例的执行 我唯一的要求是——Jenkins作业中列出的所有测试用例都必须得到执行,即使其间有任何测试用例失败 你能为这个问题提出一个解决方案吗 我必须包括任何其他插件吗 这是詹金斯这项特殊工作的截图- 列出了必要的配置步骤之一:使用Jenkins和x2B实现测试自动化;机器人框架,jenkins,selenium-webdriver,automation,automated-tests,robotframework,Jenkins,Selenium Webdriver,Automation,Automated Tests,Robotframework,我们使用Jenkins进行持续集成 我还为robot框架测试用例创建了一个Jenkins作业。但是我在使用Jenkins运行robot框架测试用例时遇到了一个问题 比如说,如果我必须在Jenkins job for robot framework中包含大约300个测试用例,在运行测试用例时,如果任何测试用例失败,那么剩余的测试脚本将无法执行 例如:在运行测试用例时,如果第10个测试用例失败,那么剩余的290个测试用例将不会被执行 在Jenkins中,有没有更好的选择以并发方式运行所有测试用例因此
这不是批量运行测试的好方法。首先,RobotFramework日志只包含上一次测试的结果,即使它们都通过了测试 问题是,当构建中的“执行Shell”步骤失败时,Jenkins停止构建。正如上面的评论所指出的,您可以尝试使用
exit 0
更改返回状态
但是,不是每个测试都是单独的构建步骤,而是:
pybot /home/arun/test-cases/228.txt
pybot /home/arun/test-cases/117.txt
...etc
您应该在一个步骤中同时执行它们:
pybot /home/arun/test-cases/
如果需要控制执行哪些测试,而不是该文件夹及其子文件夹中的所有有效测试文件,请使用。这不是批量运行测试的好方法。首先,RobotFramework日志只包含上一次测试的结果,即使它们都通过了测试 问题是,当构建中的“执行Shell”步骤失败时,Jenkins停止构建。正如上面的评论所指出的,您可以尝试使用
exit 0
更改返回状态
但是,不是每个测试都是单独的构建步骤,而是:
pybot /home/arun/test-cases/228.txt
pybot /home/arun/test-cases/117.txt
...etc
您应该在一个步骤中同时执行它们:
pybot /home/arun/test-cases/
如果需要控制执行哪些测试,而不是该文件夹及其子文件夹中的所有有效测试文件,请使用。如何运行所有这些测试?你的詹金斯工作是什么样子的?这听起来不像是正常的行为。“任何一个测试用例失败”是指单个测试用例,还是只有一个测试用例但有300个关键字可以断言?您好@Bryan..谢谢您的回复。我对詹金斯比较陌生。我编辑了我的问题,并添加了詹金斯这项特殊工作的截图。你能看一下吗?我通过执行一个包含命令
pybot/path/to/test/case
的shell来运行每个测试用例。我刚刚创建了一个包含300个shell的作业(每个都执行一个命令pybot……。
)。这是创造詹金斯工作岗位的正确方式吗“任何一个测试用例失败”意味着如果任何一个测试用例失败(pybot…
),其余的shell将不会被执行。您如何运行所有这些测试?你的詹金斯工作是什么样子的?这听起来不像是正常的行为。“任何一个测试用例失败”是指单个测试用例,还是只有一个测试用例但有300个关键字可以断言?您好@Bryan..谢谢您的回复。我对詹金斯比较陌生。我编辑了我的问题,并添加了詹金斯这项特殊工作的截图。你能看一下吗?我通过执行一个包含命令pybot/path/to/test/case
的shell来运行每个测试用例。我刚刚创建了一个包含300个shell的作业(每个都执行一个命令pybot……。
)。这是创造詹金斯工作岗位的正确方式吗“任何一个测试用例失败”是指如果任何测试用例失败(pybot…
),剩余的shell将不会被执行。它们还应确保不使用--exitonfailure
命令行选项。它们还应确保不使用--exitonfailure
命令行选项。感谢@aneroid提供解决方案。欢迎使用。通常情况下,你应该对有帮助的答案进行投票,并接受最适合你的答案。感谢@aneroid提供的解决方案。欢迎使用SO。通常,你应该投票选出对你有帮助的答案,并接受最适合你的答案。