跳转到主要内容

Schul-Cloud 搜索 API

项目描述

Build Status Python Package Index Dockerhub Automated Build Status First Timers

这些是对Schul-Cloud搜索API的测试。您可以阅读有关所有搜索引擎的常见测试部署期间测试的动机博客文章。

  • 所有搜索引擎的常见测试

  • 部署期间测试

安装

您可以通过安装Python 3和pip来安装测试。然后,您可以从命令行运行安装

pip install --user schul-cloud-search-tests

开发安装

如果您想为此存储库贡献代码,您首先可以克隆它。

git clone https://github.com/schul-cloud/schul_cloud_search_tests.git
cd schul_cloud_search_tests

安装Python所需的包

pip3 install --user -r requirements.txt pip-tools==1.6.5

请注意,如果您想更改要求,请编辑requirements.in文件,并运行此命令以更新依赖项

pip-compile --output-file requirements.txt requirements.in

规范

这些测试在您的搜索客户端和搜索引擎或搜索适配器之间运行。您使用测试接口而不是搜索引擎接口来检查客户端发出的每个请求

  • 客户端请求是否正确编制?

  • 服务器响应是否正确编制?

这些情况可以定义,也已经定义

  • 当客户端发出成功的请求且服务器正确响应时,请求将被转发,可选地包括测试通过的通知。

  • 当客户端发出格式不正确的请求时,将返回HTTP错误400,其中包括未通过测试的信息。请求被转发到服务器,预期的响应也是400

  • 当客户端发出正确的请求,而服务器响应格式不正确时,将返回HTTP错误409,其中包括服务器所犯错误的描述列表。

为了使决策透明,客户端请求和服务器响应都包含在错误响应中。

作为代理的使用

假设您有一个运行在http://localhost:1234/v1/search/上的服务器。您可以将搜索引擎测试作为代理在端口8080上运行,如下所示

python3 -m schul_cloud_search_tests.proxy http://localhost:1234/v1/search 8080 /endpoint/

现在,您对http://localhost:8080/endpoint/的所有请求都将转发到http://localhost:1234/v1/search

完成操作后,您可以通过访问http://localhost:8080/stop来停止服务器或运行此命令

python3 -m schul_cloud_search_tests.stop 8080

如果所有请求的所有测试都通过,则返回代码为零(成功)。如果有一个测试失败,则它是一个大于零的数字。

请注意,默认设置如下。每行的命令相同。

python3 -m schul_cloud_search_tests.proxy http://localhost:8080/v1/search 8081 /v1/search
python3 -m schul_cloud_search_tests.proxy http://localhost:8080/v1/search 8081
python3 -m schul_cloud_search_tests.proxy http://localhost:8080/v1/search
python3 -m schul_cloud_search_tests.proxy

作为测试的使用

如果您有一个应该在URL上测试的搜索引擎,您可以使用以下命令对其运行测试

python3 -m schul_cloud_search_tests.search http://localhost:8080/v1/search \
           --query "Q=einstein" --query "Q=test&page[offset]=20"

以下测试测试以下内容

  • 有一个搜索引擎在http://localhost:8080/v1/search上运行

  • 以下查询Q=einsteinQ=test&page[offset]=20被正确处理。

  • 运行了额外的测试,以测试正确和格式不正确的查询,请参阅问题6

如果所有测试都通过,则测试的返回状态为零,否则为正数。

开发过程

该想法在动机博客文章中陈述。我们可以使用测试来测试搜索引擎。然而,测试可能会变得复杂,并且必须对其进行测试。因此,提出了以下开发过程。

  1. 查看规范

    规范是最重要的文档。它确定了需要测试的内容。

  2. 根据规范的示例实现测试。这些测试位于schul_cloud_search_tests/tests文件夹中。它们测试了搜索引擎代理如何对不同有效和无效请求做出响应。

  3. 让测试运行。

进一步阅读


您可以在GitHub上编辑此文档,并使用此编辑器进行检查。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

schul_cloud_search_tests-1.0.96.tar.gz (24.3 kB 查看散列)

上传时间

构建分发

schul_cloud_search_tests-1.0.96-py3-none-any.whl (36.9 kB 查看散列)

上传时间 Python 3

由以下支持