使用Pyral给Rally神器添加图片

Adding a picture to Rally artifact by using Pyral

我一直在尝试使用 Pyral 在 Rally 的测试用例中添加图片。

我已经能够成功添加附件和 link 到图片。

但是图片显示不出来:

我从附件下载的图片是1kB的图片(应该是37kB)打不开

我正在使用以下代码 代码

    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?

问题出在 Rest API 从文件中读取内容的方式

#extract from function addAttachment in file 'restapi.py'
with open(filename, 'r') as af:
    contents = base64.b64encode(af.read())

这适用于文本文件,但不适用于二进制文件。

一个临时解决方案是通过将文件读取为二进制 open(filename, 'rb') 来修补 restapi.py 的函数 addAttachment,这对文本文件也适用。

with open(filename, 'rb') as af:
    contents = base64.b64encode(af.read())

之后这对我来说效果很好:

注意:在我的电脑上(Windows),文件restapi.py可以在:

中找到

{Python Install dir}/Lib/site-packages/pyral/restapi.py