将测试用例结果添加到Quality Center Run从外部Python脚本

时间:2011-10-14 20:51:17

标签: python hp-quality-center

我想尝试添加所有步骤详细信息 - 预期,实际,状态, 等到QC从Python脚本运行TestSet的测试用例 住在质量中心外面。 我来到这里(下面给出的代码),我不知道如何添加 步骤预期和步骤实际结果。如果有人知道怎么做, 请帮帮我!!拜托,我不想要任何QTP解决方案。 谢谢, 代码 -

# Script name - add_tsrun.py 
# C:\Python27\python.exe 
# This script lives locally on a Windows machine that has - Python 2.7, Win32 installed, IE8 
# Dependencies on Windows Machine - Python 2.7, PythonWin32 installed, IE8, a QC Account, connectivity to QCServer 
import win32com.client, os 
tdc = win32com.client.Dispatch("TDApiOle80.TDConnection") 
tdc.InitConnection('http://QCSERVER:8080/qcbin') 
tdc.Login('USERNAME', 'PASSWORD') 
tdc.Connect('DOMAIN_NAME', 'PROJECT') 
tsFolder = tdc.TestSetTreeManager.NodeByPath('Root\\test_me\\sub_folder') 
tsList = tsFolder.FindTestSets('testset1') 
ts_object = tsList.Item(1) 
ts_dir = os.path.dirname('testset1') 
ts_name = os.path.basename('testset1') 
tsFolder = tdc.TestSetTreeManager.NodeByPath(ts_dir) 
tsList = tsFolder.FindTestSets(ts_name) 
ts_object = tsList.Item(1) 
TSTestFact = ts_object.TSTestFactory 
TestSetTestsList = TSTestFact.NewList("") 
ts_instance = TestSetTestsList.Item(1) 
newItem = ts_instance.RunFactory.AddItem(None)   # newItem == Run Object 
newItem.Status = 'No Run' 
newItem.Name = 'Run 03' 
newItem.Post() 
newItem.CopyDesignSteps()   # Copy Design Steps 
newItem.Post() 
steps = newItem.StepFactory.NewList("") 
step1 = steps[0] 
step1.Status = "Not Completed" 
step1.post() 
## How do I change the Actual Result?? 
## I can access the Actual, Expected Result by doing this, but not change it
step1.Field('ST_ACTUAL') = 'My actual result'           # This works in VB, not python as its a Syntax error!! 
Traceback (  File "<interactive input>", line 1 
SyntaxError: can't assign to function call

希望这可以帮助你们。如果你知道设置的答案 实际结果,请帮帮我,让我知道。谢谢, 阿米特

2 个答案:

答案 0 :(得分:2)

作为Ethan Furman answered in your previous question

  

在Python中()表示对函数的调用,而[]表示索引和映射。

换句话说,您可能想要step1.Field['ST_ACTUAL'] = 'My actual result'

答案 1 :(得分:2)

经过大量Google搜索后找到答案:)

简单 - &gt;就这样做:

step1.SetField("ST_ACTUAL", "my actual result") # Wohhooooo!!!!

如果上述代码无效,请尝试执行以下操作: -

(OPTIONAL) Set your win32 com as follows- (Making ''Late Binding'')
# http://oreilly.com/catalog/pythonwin32/chapter/ch12.html
    a. Start PythonWin, and from the Tools menu, select the item COM Makepy utility.
    b. Using Windows Explorer, locate the client subdirectory (OTA COM Type Library)
       under the main win32com directory and double-click the file makepy.py.

谢谢大家...