我一直在尝试使用Pyral在Rally的测试用例中添加图片。
我能够成功添加附件和图片链接。
但是,图片不会显示:
当我从附件下载图片时,它是1 kB图片(虽然它应该是37 kB)并且无法打开。
我正在使用以下代码 代码
TCID = "TC1234"
attachment = rally.addAttachment(TCid, "picture_new.jpg", mime_type="image/jpeg")
Step['ExpectedResult']='Test picture<br /><img src="/slm/attachment/{oid}/{Name}" />'.format(**attachment.__dict__)
list_Steps.append(Step)
#... and some code to update the Test Steps in the Test Case that works fine
以下代码适用于文本文件(附件具有正确的大小和内容)但不适用于图片。
我的代码或API中出现了问题吗?
答案 0 :(得分:2)
问题来自Rest API从文件中读取内容的方式
#extract from function addAttachment in file 'restapi.py'
with open(filename, 'r') as af:
contents = base64.b64encode(af.read())
这适用于文本文件,但不适用于二进制文件。
临时解决方案是通过将文件读取为二进制addAttachment
来修补restapi.py
的函数open(filename, 'rb')
,这对于文本文件也可以。
with open(filename, 'rb') as af:
contents = base64.b64encode(af.read())
注意:在我的计算机(Windows)上,可以在以下位置找到文件restapi.py
:
{Python Install dir} /Lib/site-packages/pyral/restapi.py