当前位置: 首页 > 知识库问答 >
问题:

如何创建、删除和更新VSTS测试用例中列出的测试步骤

司徒焕
2023-03-14

我们正在构建一种方法,将测试套件的执行指标自动更新到VSTS服务器上。在浏览了VSTS的REST应用编程接口文档后,我们能够使用这些自动应用编程接口完成以下操作

  • 使用现有测试用例的所需列表创建测试运行
  • 更新上述已创建测试运行的测试结果(结果和状态)

现在可以更新测试用例是通过、失败还是任何其他可用结果。但我们正在寻找一种自动化的方法,通过这种方法,我们可以更新每个测试用例中每个测试步骤的状态,以通过、失败或任何其他可用结果。

希望我已经以更容易理解的方式解释了我们的痛苦领域。

请回复您的建议。

提前谢谢。

共有1个答案

逄俊力
2023-03-14

VSTS测试用例中列出的测试步骤仍然属于测试结果。

如果您得到一个带有参数“细节包含=迭代”的测试结果,您将看到有“动作结果”来确定测试步骤的结果:

Get https://xxx.visualstudio.com/TestCase/_apis/test/runs/xx/results/xx?api-version=3.0-preview&detailsToInclude=Iterations

但我尝试过用REST api更新测试结果来更新“actionResults”以进行测试运行,发现它不支持更新“actionResults”。rest api无法满足您的要求。

代替REST api,您可以使用客户机api,如本例所述:如何以编程方式向VST/TFS的testcase中的每个测试步骤添加/更新单个结果

简单示例:

int testpointid = 176;
            var u = new Uri("https://[account].visualstudio.com");
            VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[pat]"));
            TfsTeamProjectCollection _tfs = new TfsTeamProjectCollection(u, c);
            ITestManagementService test_service = (ITestManagementService)_tfs.GetService(typeof(ITestManagementService));
            ITestManagementTeamProject _testproject = test_service.GetTeamProject("scrum2015");
            ITestPlan _plan = _testproject.TestPlans.Find(115);
            ITestRun testRun = _plan.CreateTestRun(false);
            testRun.Title = "apiTest";
            ITestPoint point = _plan.FindTestPoint(testpointid);
            testRun.AddTestPoint(point, test_service.AuthorizedIdentity);
            testRun.Save();
            testRun.Refresh();
            ITestCaseResultCollection results = testRun.QueryResults();
            ITestIterationResult iterationResult;

            foreach (ITestCaseResult result in results)
            {
                iterationResult = result.CreateIteration(1);
                foreach (Microsoft.TeamFoundation.TestManagement.Client.ITestStep testStep in result.GetTestCase().Actions)
                {
                    ITestStepResult stepResult = iterationResult.CreateStepResult(testStep.Id);
                    stepResult.Outcome = Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Passed; //you can assign different states here
                    iterationResult.Actions.Add(stepResult);
                }
                iterationResult.Outcome = Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Passed;
                result.Iterations.Add(iterationResult);
                result.Outcome = Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Passed;
                result.State = TestResultState.Completed;
                result.Save(true);
            }
            testRun.State = Microsoft.TeamFoundation.TestManagement.Client.TestRunState.Completed;
            results.Save(true);
 类似资料:
  • 本文向大家介绍如何从TestNG中的测试用例集合中合并和删除测试方法?,包括了如何从TestNG中的测试用例集合中合并和删除测试方法?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助testng xml文件中的<groups>标记从执行中合并和删除测试方法。 示例 Testng xml文件。 testNG xml具有要包含的Smoke组和要从执行中排除的CodingModule组。 示例 在

  • 问题内容: 有没有办法动态创建测试用例?我尝试了以下方法。 ..可以正确创建所有方法(它们显示在并且可以调用),但是unittest的测试检测器也不执行(“ Ran 0 tests in …”) 由于我可能会问错问题-我想实现的目标是: 我有一个文件,其中包含测试数据,输入文件名列表和预期数据(在上述代码中简化为),存储在Python字典中。例如,键是类别,值是测试用例的列表。 目前,我只是遍历所

  • 我有一个,它有几个不同的查询来更新表。这些方法没有使用注释,因为事务是在服务级别上进行的。 我想测试这些存储库。我创建了一个用注释的测试类,但是当调用存储库方法时,它们会失败: 如果我用注释每个存储库方法,它会修复错误,但我不想更改主代码库。我应该能够在测试中创建事务。 我已经创建了一些示例代码来展示我所拥有的一般结构。 存储库 测验 例外 将测试注释为“@Transactional”不应该解决这

  • 假设我有一个测试来断言系统中新用户的注册是否真的成功: 现在,这将在实际数据库中创建一个新的测试用户,因为我希望这个测试在实际环境中运行。这意味着测试不能一直运行,对吗?我应该如何进行此类测试?那些使用系统的实际环境并操纵真实数据的人?

  • 我正在使用Jenkins作业DSL创建我的作业,并使用和测试我的脚本。 基于Gradle示例,我能够成功安装新的插件,但如何更新已经安装的插件? 我尝试使用UpdateCenter,但即使使用,我也无法强制测试等待更新过程。

  • 问题内容: 我想知道这个测试问题。我自己准备了示例并进行了测试,但是我仍然不确定答案。 具有以下内容: 据我所知,答案是: 一个。 创建两个表 虽然也有: b。 如果删除表foo2中foo_id为2的行,则表foo中id = 2的行将被自动删除 d。如果删除表foo中id = 2的行,则删除表foo2中所有foo_id = 2的行 在我的示例中,我将使用delete语法: 由于某种原因,我似乎找不