找出URL响应以检查Codeception中损坏的Url

时间:2016-08-05 11:22:31

标签: codeception

我使用了grabMultiple()方法获取了多个网址。 我想检查一下它的反应,检查它是否坏了(即404)。

我可以在Codeception中使用HTTP响应吗?如果是,语法是什么?

2 个答案:

答案 0 :(得分:2)

使用seeResponseCodeIs方法。

$links = $I->grabMultiple('div.test-info a', 'href');
foreach ($links as $link) {
  $I->amOnPage($link);
  $I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
}

答案 1 :(得分:0)

这对我有用 -

function check_url($link){

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); //follow up to 10 redirections - avoids loops
$data = curl_exec($ch);
curl_close($ch);
preg_match_all("/HTTP\/1\.[1|0]\s(\d{3})/",$data,$matches);

$code = end($matches[1]);

if($code==404) 
{
    echo "Bad url";
}
else{
    echo "Good url";
}

}