gpt4 book ai didi

http - 如何使用 Behat/Mink 高效地测试访问大文件?

转载 作者:可可西里 更新时间:2023-11-01 16:38:09 27 4
gpt4 key购买 nike

我想编写 Behat/Mink 场景来检查某些用户帐户是否可以下载大文件。我可以使用 When I follow "largefile.zip" 事件,但这似乎下载了整个文件。

与其浪费时间和资源流式传输大文件,我更愿意(例如)检查 HTTP HEAD 请求的结果,或者尝试使用HTTP GET 请求,然后立即取消并检查响应状态码

我如何使用 Behat/Mink 做到这一点?

最佳答案

我同意@NathanStretch 关于扩展的观点,所以这就是我所做的。

此示例基于使用 http://download.thinkbroadband.com/5MB.zip作为下载地址。不完美,因为我没有在响应 header 中看到文件名,但它确实有内容长度。

<?php

class DownloadContext extends Behat\MinkExtension\Context\RawMinkContext {
private $headers = [];

/**
* @When /^I try to download "([^"]*)"$/
*/
public function iTryToDownload($url)
{
$this->headers = get_headers($url);
}

/**
* @Then /^I should see in the header "([^"]*)"$/
*/
public function iShouldSeeInTheHeader($header)
{
assert(in_array($header, $this->headers), "Did not see \"$header\" in the headers.");
}
}

使用具有以下内容的 .feature 文件:

  Scenario: Try to download a file
When I try to download "http://download.thinkbroadband.com/5MB.zip"
Then I should see in the header "Content-Length: 5242880"

如果您可以自己控制下载,那么您可以在标题中设置文件名并检查它而不是大小。如果大小可以可变,那当然更好,因为我认为这意味着必须拆分内容长度字符串,转换为 int,然后然后进行比较。啊。可能有一个更优雅的解决方案。

希望有所帮助。

关于http - 如何使用 Behat/Mink 高效地测试访问大文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com