测试框架使用指南

简介

基于 pytest 编写的 PyMilvus 的测试框架。

测试代码:https://github.com/milvus-io/milvus/tree/master/tests/python_client

 

快速开始

部署 Milvus

Milvus 支持4种部署方式,请根据需求选择部署方式,PyMilvus 支持任意部署下的 Milvus。

  1. 源码编译部署
  2. Docker Compose 部署(单机版本 分布式版本)
  3. Kubernetes 部署(单机版本 分布式版本)
  4. KinD 部署

KinD部署提供一键安装部署:最新的Milvus服务和测试客户端。KinD部署非常适合开发/调试测试用例,功能验证等对数据规模要求不大的场景,但并不适合性能或压力等有较大数据规模的场景。

  1. 准备环境
  2. 脚本安装
 ./e2e-k8s.sh 

note:默认参数下KinD环境将在执行完测试用例后被自动清理

 ./e2e-k8s.sh --skip-cleanup
 ./e2e-k8s.sh --skip-cleanup --skip-test --manual

Note:需要log in到测试客户端的container进行手动执行或调试测试用例

 ./e2e-k8s.sh --help
 kind export logs .

 

PyMilvus 测试环境部署及用例执行

推荐使用 Python 3(>= 3.6) ,与 PyMilvus 支持的 python 版本保持一致。

Note: 如选择KinD部署方式,以下步骤可以自动完成。

  1. 安装测试所需的 Python 包,进入代码 */milvus/tests/python_client/ 目录,执行命令:
  2. pip install -r requirements.txt
    
  3. config目录下,测试的日志目录默认为:/tmp/ci_logs/,可在启动测试用例之前添加环境变量来修改log的存放路径:
  4. export CI_LOG_PATH=/tmp/ci_logs/test/
    
    Log Level Log File
    Debug ci_test_log.debug
    Info ci_test_log.log
    Error ci_test_log.err
  5. 在主目录 pytest.ini 文件内可设置默认传递的参数,如下例中 ip 为所需要设置的 milvus 服务的ip地址,*.html 为测试生成的 report
  6. addopts = --host *.*.*.*  --html=/tmp/ci_logs/report.html
    
  7. 进入 testcases 目录,命令与 pytest 框架的执行命令一致,运行如下命令执行测试用例:
python3 -W ignore -m pytest <选择的测试文件>

 

模块介绍

模块调用关系图

img

工作目录及文件介绍

 

主要设计思路

 

代码添加

可参考添加新的测试用例或框架工具。

 

Python 测试代码添加注意事项
    1. 测试编码风格
    2. 编码注意事项
    3. 测试用例添加
    4. 框架功能添加