我有一个Web服务,在调用/image.gif时生成动态图像。 如何进行量角器测试以下载文件并对结果进行MD5sum?
我查看了Protractor e2e test case for downloading pdf file,但它依赖于浏览器点击下载链接。
此图片没有托管页面。
答案 0 :(得分:2)
我无法在我的Windows设置上下载图像,使用Leo的回答没有错误,但我发现以下内容可以让我获得我可以“期待”的base64数据uri。
Convert an image into binary data in javascript
it('Image is version1)', function() {
browser.ignoreSynchronization = true
browser.get(targetUrl);
return browser.executeScript(function() {
var img = document.querySelector('img');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}).then(function (data) {
expect(data).toEqual(base64VersionOfVersion1);
});
});
答案 1 :(得分:1)
您应该关注我的Chrome configuration on that pdf-question link。
然后,browser.get('/image.gif');
不应点击某些内容,而应触发下载。
等待Stephen Baillie solution或类似的下载完成。
最后,对于MD5部分的NodeJS方面,你可以使用execSync或更实际的东西,但execSync会做:
var execSync = require('exec-sync');
var md5sum = execSync('md5sum ' + pathToDownloadedFile).split(' ')[0]
// e.g. md5sum //=> "c9b833c49ffc9d48a19d0bd858667188"