gpt4 book ai didi

php - 如果测试中断,如何禁用 Web 应用程序中的功能?

转载 作者:行者123 更新时间:2023-11-28 21:32:59 25 4
gpt4 key购买 nike

我必须为类编写一个爬虫,我想对其进行测试以确保它确实有效。

如果我正在抓取的网站更改了他们的网站,我希望我们的网站失败并禁用该功能,直到我们更新抓取器。

假设我使用单元测试来测试爬虫,是否有一些工具会每 X 分钟运行一次测试,并在禁用 Y 功能之前查看它是否损坏?

我想我想问的是,我可以使用哪些工具来使我的应用程序更加健壮,这样我的用户就不会在我的抓取工具损坏时看到一些奇怪的消息?

最佳答案

  1. 当网站有意外的 HTML 时,让抓取工具抛出自定义异常
  2. 编写单元测试以测试抓取工具在预期 HTMl 时是否确实可以解析网站,并测试该类在无法解析网站时是否抛出自定义异常
  3. 捕获生成网站内容的代码中的异常。发送错误消息以记录并向用户显示合适的信息

您还应该将解析后的内容保存在本地。如果远程服务器出现故障,您将回退到已保存的内容,而不是抛出 ScraperParseThingyException。

您可以通过多种方式进行监控。最简单的方法是时不时地关注一下错误日志。

$scraperConfiguration = array(
'disable_on_error' => true,
'notify_on_first_error' => true,
'notify_email' => 'scrape-errors@example.com',
);

...

$scraper = new Scraper($scraperConfiguration);
$scrapeResult = $scraper->scrape();

...

作为这个小刮刀 facade显示,您可以配置它的内部错误处理,这里会自动禁用并在发生错误时发送通知。

因为它会被自动禁用,所以您的网站会返回一个空结果,并且在您解决问题之前不需要再关心太多。

此外,您可以在带有测试配置的测试用例中使用它(例如,抛出异常并对其进行测试,而不是发送电子邮件并在出错时禁用),这样您就可以在测试中看到,尤其是当开发和维护组件。

关于php - 如果测试中断,如何禁用 Web 应用程序中的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12831468/

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