# 测试框架使用说明 ## 简介 基于TestNG编写的的针对**milvus-sdk-java**测试的的自动化测试框架。 ## 快速开始 ### 环境准备 -[安装java-sdk](https://www.oracle.com/java/technologies/downloads/) -[安装maven](http://maven.apache.org/download.cgi) ### 启动 Milvus - [安装 Milvus 单机版](https://milvus.io/cn/docs/v2.0.0/install_standalone-docker.md) - [安装 Milvus 分布式版本](https://milvus.io/cn/docs/v2.0.0/install_cluster-docker.md) ### 引入MILVUS-SKD-JAVA #### 仓库(maven) #### 中央仓库 ```xml io.milvus milvus-sdk-java 2.2.4 ``` - 参考开发环境:https://zilliverse.feishu.cn/wiki/wikcnjtrUdSxgjcG3nLXe8C7bKf# ## 模块介绍 ### 文件结构 ```ignorelang . ├── allure-result allure报告收集的运行结果集 ├── log 日志目录 ├── src ├──java ├── aop 切面编程目录 ├── common 项目静态资源 ├── BaseTest 封装的基础测试类 └── Common* 封装的测试方法和数据 ├── entity 实体类 ├── service 项目服务类 ├── util 工具类 ├── resources 资源配置文件 └── test 测试类集 ├── pom.xml 项目依赖 └──testng.xml testng配置文件 ``` ### 设计思路 - BaseTest类,继承AbstractTestNGSpringContextTests类,为每个测试类提供MilvusServiceClient,方便调用。通过@BeforeSuite提供默认的Collection、Index、Partition 等供测试类使用。 - test文件里,每一个测试类对应一个接口,每个类之间相互解耦,非必要,不依赖。同类型接口放到同一个文件夹下。接口类的串行测试放到单独文件。 - CommonData,CommonFunction提供公用的参数和方法。 - tesgng.xml文件,提供测试运行配置和测试数据的参数化。 - allure-results文件夹,负责测试运行数据的收集和测试报告的创建。 ### testNG介绍 常用注解: | **注解** | **描述** | | ------------- | ------------------------------------------------------| | @Test | 标记一个类里所有的public void方法,或某个方法,作为测试案例。| | @BeforeSuite | 对于套件测试,在此套件中的所有测试执行之前运行,仅运行一次。| | @AfterSuite |对于套件测试,在此套件中的所有测试执行之后运行,仅运行一次。| | @BeforeClass |在调用当前类之前运行,只运行一次。| | @AfterClass |在调用当前类之后运行,只运行一次。| | @BeforeTest |对于套件测试,在属于标签内的所有类的测试方法执行之前运行。| | @AfterTest |对于套件测试,在属于标签内的所有类的测试方法都已执行完之后运行。| | @BeforeGroups |在调用属于该组的第一个测试方法之前运行。| | @AfterGroups |在调用属于该组的最后一个测试方法执行之后运行 。| | @BeforeMethod |注解的方法将每个测试方法之前运行。| | @AfterMethod |在每个测试方法执行之前都会运行。| | @DataProvider |标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。| | @Factory |作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。| | @Listeners |定义一个测试类的监听器。| | @Parameters |用于将参数传递给@Test方法。| ## 代码添加 ### 注意事項 - 每个测试接口对应一个测试类,新增用例时,先检查是否已有对应的类。 - 新建、删除类的的接口,使用CommonFunction里创建新的操作对象;查询、修改类接口可以直接使用BaseTest里创建的操作对象。 - 一般情况下,不在测试用例文件中直接添加日志代码。 - 测试用例里无需单独初始化MilvusClient。 ## 后续工作 - 日志功能的完善 - 测试数据的分离实现