Python HP ALM新缺陷500
通过以下代码,我想在hp alm 11.52中创建一个新缺陷Python HP ALM新缺陷500,python,rest,post,alm,hp-quality-center,Python,Rest,Post,Alm,Hp Quality Center,通过以下代码,我想在hp alm 11.52中创建一个新缺陷 import requests import sys import json def login_alm(alm_url, login_list, header): # GET request @ ALM URL r = requests.get(alm_url + u'authentication-point/authenticate', auth = login_list) if r.status_co
import requests
import sys
import json
def login_alm(alm_url, login_list, header):
# GET request @ ALM URL
r = requests.get(alm_url + u'authentication-point/authenticate', auth = login_list)
if r.status_code == 200:
print 'Login successful'
header['Cookie'] = r.headers['set-cookie']
else:
print'Login Failed'
sys.exit(0)
return header
def logout_alm(alm_url, login_list, header):
if header['Cookie'] is not None:
r = requests.get(alm_url + u'authentication-point/logout', headers=header, auth=login_list)
if r.status_code == 200:
print 'Logout successful'
else:
print 'Logout not successful'
else:
print 'Logging Error: header = None'
return 1
def create_defect(alm_url, header, alm_domain, alm_project, daten_xml, login_list):
if header['Cookie'] is not None:
print header
r = requests.post(alm_url + u'rest/domains/' + alm_domain + u'/projects/' + alm_project + u'/defects',
headers=header,
data=daten_xml)
def main():
url = u'https://{.......}'
login = (u'{...}', u'{...}')
domain = u'{...}'
project = u'{...}'
headers = {"Accept":"application/xml",
"Content-Type":"application/xml",
"Cookie": None}
ticket_data_xml = ''' <Entity Type="defect">
<Fields>
<Field Name="{...}"><Value>{...}</Value></Field>
<Field Name="{...}"><Value>{...}</Value></Field>
<Field Name="{...}"><Value>{...}</Value></Field>
<Field Name="{...}"><Value>{...}</Value></Field>
<Field Name="{...}"><Value>{...}</Value></Field>
</Fields>
</Entity>'''
headers = login_alm(alm_url=url, login_list=login, header=headers)
create_defect(alm_url=url, header=headers, alm_domain=domain, alm_project=project, daten_xml=ticket_data_xml, login_list=login)
logout_alm(alm_url=url, login_list=login, header=headers)
if __name__ == '__main__':
main()
因此,无法创建新缺陷的主要原因是试图创建id为#703的现有缺陷 最有可能的情况是,您可能无法正确地传递票证数据xml信息,包括带有exist ID的标记。这只是我的假设,因为您没有给出具体数据xml的示例 请看我在ALM 11.52上成功使用的带有默认自定义的空项目上的data_xml示例:
Url:
http://{your_server:your_port}/qcbin/rest/domains/{your_domain}/projects/{your_project}/defects
Headers:
Content-Type=application/xml
Accept= application/xml
Data_xml:
<Entity Type="defect">
<Fields>
<Field Name="severity">
<Value>1-Low</Value>
</Field>
<Field Name="name">
<Value>Defect3</Value>
</Field>
<Field Name="detected-by">
<Value>sa</Value>
</Field>
<Field Name="creation-time">
<Value>2016-08-16</Value>
</Field>
</Fields>
</Entity>
Url:
http://{your_server:your_port}/qcbin/rest/domains/{your_domain}/projects/{your_project}/defects
标题:
内容类型=应用程序/xml
Accept=application/xml
数据xml:
1-低
缺陷3
sa
2016-08-16
您可以使用此xml作为示例,并针对必填字段等对其进行修改。因此,无法创建新缺陷的主要原因是试图创建id为703的现有缺陷 最有可能的情况是,您可能无法正确地传递票证数据xml信息,包括带有exist ID的标记。这只是我的假设,因为您没有给出具体数据xml的示例 请看我在ALM 11.52上成功使用的带有默认自定义的空项目上的data_xml示例:
Url:
http://{your_server:your_port}/qcbin/rest/domains/{your_domain}/projects/{your_project}/defects
Headers:
Content-Type=application/xml
Accept= application/xml
Data_xml:
<Entity Type="defect">
<Fields>
<Field Name="severity">
<Value>1-Low</Value>
</Field>
<Field Name="name">
<Value>Defect3</Value>
</Field>
<Field Name="detected-by">
<Value>sa</Value>
</Field>
<Field Name="creation-time">
<Value>2016-08-16</Value>
</Field>
</Fields>
</Entity>
Url:
http://{your_server:your_port}/qcbin/rest/domains/{your_domain}/projects/{your_project}/defects
标题:
内容类型=应用程序/xml
Accept=application/xml
数据xml:
1-低
缺陷3
sa
2016-08-16
您可以使用此xml作为示例,并针对必填字段等对其进行修改。执行此代码后,请检查并发布qc日志。你可以从中得到一些提示。我添加了qc日志,但我没有从中得到任何提示…你必须提供用于创建缺陷的完整xml/json。那里可能有问题。另外:在Chrome中,您可以在一个选项卡中尝试此URL进行身份验证:填写凭据后,您将能够使用另一个选项卡中的“Advanced REST Client”插件发送REST调用,而无需再次处理身份验证请求。请在执行此代码后检查并发布qc日志。你可以从中得到一些提示。我添加了qc日志,但我没有从中得到任何提示…你必须提供用于创建缺陷的完整xml/json。那里可能有问题。另外:在Chrome中,您可以在一个选项卡中尝试使用此URL进行身份验证:填写凭据后,您将能够使用另一个选项卡中的“Advanced REST Client”插件发送REST调用,而无需再次处理身份验证请求。
Url:
http://{your_server:your_port}/qcbin/rest/domains/{your_domain}/projects/{your_project}/defects
Headers:
Content-Type=application/xml
Accept= application/xml
Data_xml:
<Entity Type="defect">
<Fields>
<Field Name="severity">
<Value>1-Low</Value>
</Field>
<Field Name="name">
<Value>Defect3</Value>
</Field>
<Field Name="detected-by">
<Value>sa</Value>
</Field>
<Field Name="creation-time">
<Value>2016-08-16</Value>
</Field>
</Fields>
</Entity>