【问题标题】:How do I run robot framework tests based on git commits?如何基于 git 提交运行机器人框架测试?
【发布时间】:2019-05-31 09:57:06
【问题描述】:

我们正在开发一个 Web 应用程序,我们在其中运行机器人框架回归测试。我希望能够基于来自 git 的标签运行特定的机器人框架测试,这样我就不必每次都运行完全回归。

目前我使用 Jenkins 来执行 windows 批处理命令。我的第一份工作从存储库中提取所有内容。

cd /d C:\home\(Repository here)
git pull --summary

我的第二份工作运行我指定的测试,目前是完全回归。

robot -P C:\home\(Repository root here) C:\home\(Path to test cases)

有没有办法根据 git 中的某些标签来运行特定的测试?例如运行“登录”测试,因为有人推送了在其提交消息中包含 [Login] 标记的提交。

这是一个测试套件的示例。

文件名 = C:\home(Repo)\Regression\Common\Login\LoginTestSuite.txt

*** Settings ***
Documentation    Login Test Suite
Suite Setup    Suite Setup
Library    SeleniumLibrary
Force Tags    LoginTests

*** Test Cases ***
User A Login Test
[Documentation]    This is documentation
[Tags]    Requirement A
(Test Steps Here)

其他信息

机器人框架版本:3.0.4

应用前端:AngularJS

应用程序后端:C#

【问题讨论】:

  • 您是在问如何告诉 Jenkins 运行哪些测试,还是在问如何识别套件中的特定测试与提交消息中的标签相关联?
  • 你到底在问什么 - 如何在最后一次合并的提交中获取标签;或者,如何运行特定的机器人框架测试?
  • 对不起,如果我没有充分说明。我在问如何从我的套件中识别与提交消息中的标签相关联的特定测试。
  • 你的测试集的结构是什么——你使用标签吗?还有其他标签/分类方法吗?
  • 好的,如果我告诉您“运行所有登录测试”,您将如何识别它们?更复杂的东西呢,比如功能(例如“运行所有创建对象 X 测试”)?将此信息添加到问题中,这对社区可以帮助您至关重要。

标签: git selenium jenkins robotframework git-extensions


【解决方案1】:

根据 cmets 中的讨论,您的目标是运行具有特定标签的 Robot Framework 测试;这些标签来自最新合并中的 git 标签(我们称它们为 "gtags",以区分两者)。

通过--includecommand-line option,根据标签指定要运行的案例;因此,如果 gtags 包含“LoginTests”,您只能像这样运行它们:

robot -P C:\home\(Repository root here) --include logintests C:\home\(Path to test cases)

如果 gtag 不止一个,假设它们是 (LoginTests, LogoutTests),您可以附加更多 --include 选项:

--include logintests --include logouttests

另一种选择是将它们组合在一个 include 参数中 - RF 允许通过在值内使用“AND”、“OR”和“NOT”boolean operators

--include logintestsORlogouttests

使用“AND”只会选择具有两个标签的案例,“OR” - 具有任一标签的案例(听起来像您的案例),“NOT”否定后续逻辑。这三个控制字符串区分大小写

当然,要使该方案正常工作,gtag 必须与您在测试用例中放置的相同。如果没有,您必须添加一些逻辑来将 gtag 映射到案例中的那些(“登录”->“登录测试”)。

RF 中的标签被规范化——转换为小写并删除所有空格;对于 RF "LoginTest" == "Login Test" == "login test" == "logintest" (尽管不鼓励使用空格 - 在源中放置两个太容易了,因此为案例分配了两个单独的标签)。因此,无论 gtag 的大小写如何,只要在标准化后字符串相同,它们就会匹配。

【讨论】:

  • 感谢您的帮助。很好的答案。
猜你喜欢
  • 2016-05-03
  • 2019-01-07
  • 2021-02-10
  • 2015-03-25
  • 2019-03-15
  • 2016-02-10
  • 1970-01-01
  • 2015-12-25
  • 2020-04-23
相关资源
最近更新 更多