2012-06-27 130 views

回答

2

由于您使用Javascript - 你是不是也使用汽车拉力赛的AppSDK?如果是这样,那么处理一个简单的AppSDK示例就可以相对简单一些,它可以显示出这一点 - 以及AppSDK提供的优惠。

如果您在使用直上休息,一个小问题,就是测试用例没有测试集属性字段 - 映射的是,测试仪还测试用例的集合。做到这一点的方法是通过REST查询测试集:

https://rally1.rallydev.com/slm/webservice/1.34/testset/12345678910

这将为看起来像这样的响应(使用XML阅读能力,建议在实践中使用JSON):

<?xml version="1.0" encoding="UTF-8"?> 
<TestSet rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/testset/1234741798" objectVersion="7" refObjectName=" Data Import Tests" CreatedAt="Mar 29"> 
    <CreationDate>2012-03-30T00:23:59.964Z</CreationDate> 
    <ObjectID>1234741798</ObjectID> 
    <Subscription rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/subscription/1231154643" refObjectName="My Subscription" type="Subscription" /> 
    <Workspace rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/workspace/1234498610" refObjectName="My Workspace" type="Workspace" /> 
    <Changesets /> 
    <Description>Tests to validate data import</Description> 
    <Discussion /> 
    <FormattedID>TS11</FormattedID> 
    <LastUpdateDate>2012-03-30T00:25:56.544Z</LastUpdateDate> 
    <Name>Grid Data Import Tests</Name> 
    <Notes /> 
    <Owner rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/user/1234320127" refObjectName="My Username" type="User" /> 
    <Project rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/project/1234731604" refObjectName="My Project" type="Project" /> 
    <RevisionHistory rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/revisionhistory/1234741799" type="RevisionHistory" /> 
    <Tags /> 
    <Blocked>false</Blocked> 
    <Iteration rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/iteration/1234172067" refObjectName="Iteration 1" type="Iteration" /> 
    <PlanEstimate>2.0</PlanEstimate> 
    <Rank>500000010240.000</Rank> 
    <Release rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/release/1234791788" refObjectName="Release 1" type="Release" /> 
    <ScheduleState>Defined</ScheduleState> 
    <Tasks /> 
    <TestCaseStatus>SOME_RUN_SOME_NOT_PASSING</TestCaseStatus> 
    <TestCases> 
    <TestCase rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/testcase/1234758065" refObjectName="Test Case 1" type="TestCase" /> 
    <TestCase rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/testcase/1234757395" refObjectName="Test Case 2" type="TestCase" /> 
    <TestCase rallyAPIMajor="1" rallyAPIMinor="34" ref="https://rally1.rallydev.com/slm/webservice/1.34/testcase/1234000782" refObjectName="Test Case 3" type="TestCase" /> 
    </TestCases> 
</TestSet> 

足见三个测试用例的集合。要删除测试案例3,你会提交REST请求只包括测试用例1和测试案例2,如下:

<TestSet ref="/testset/1234741798"> 
    <TestCases> 
    <TestCase ref="/testcase/1234758065"/> 
    <TestCase ref="/testcase/1234757395"/> 
    </TestCases> 
</TestSet> 

这将更新测试仪等,它消除了测试案例3只前两个测试用例。

您的客户端代码需要遍历从测试集查询REST响应,并构建扔掉未所需的测试案例,并保持你想要的那些POST请求。

+0

谢谢。这非常有帮助。我想在拉力赛结束时没有并发。如果有人在get和post之间更改了测试用例列表,它不会解决它。 –

+0

并发性问题肯定会成为大型TestSets的问题。我相信AppSDK2在这里会有一些好处,因为一些使用Javascript SDK的数据存储将有助于管理并发冲突。 – 2012-06-27 20:33:56

+0

实际上与开发团队一起签入,而AppSDK2可能对TestSets的“自上而下”类型的集合属性没有多大帮助 - 但是,它对于从集合中看到的“自下而上”更新非常有用用户故事中的任务。 – 2012-06-27 20:45:36