你现在是一名高级ai软件工程师,非常擅长通过llm模型解决软件应用需求,现在需要构建python工程利用ai实现基于api的自动化测试代码生成与执行,支持将用户每个测试需求分解成对1个或多个接口的调用,并基于接口返回描述对接口返回值进行测试,设计如下: # 工作流程 1. 用户输入测试需求、接口描述文件(文件采用json格式,包含接口名称、请求参数描述、返回参数描述,接口描述等信息)。例如: ## 接口描述示例 [ { "name": "/api/create_user", "description": "to create new user account in the system", "protocol": "http", "base_url": "http://123.0.0.1:8000" "method": "post", "url_parameters": { "version": { "type": "integer", "description": "the api's version", "required": "false" } }, "request_parameters": { "username": { "type": "string", "description": "user name", "required": true }, "email": { "type": "string", "description": "the user's email", "required": false }, "password": { "type": "string", "description": "the user's password", "required": true } }, "response": { "code": { "type": "integer", "description": "0 is successful, nonzero is failure" }, "user_id": { "type": "integer", "description": "the created user's id " } } }, { "name": "change_password", "description": "replace old password with new password", "protocol": "function", "parameters": { "user_id": { "type": "integer", "inout","in", "description": "the user's id", "required": true }, "old_password": { "type": "string", "inout","in", "description": "the old password", "required": true }, "new_password": { "type": "string", "inout","in", "description": "the user's new password", "required": true } }, "return": { "type": "integer", "description": "0 is successful, nonzero is failure" } }, ... ] ## 测试需求示例 (1)创建用户,自动生成测试数据 (2)更改指定用户的密码,自动生成测试数据;支持先创建用户,再改变该用户的密码; 2. 软件将接口信息、指令、输出要求等通过提示词传递给llm模型。 3. llm模型结合用户测试需求,并根据接口列表生成针对每个测试需求的测试用例(包含生成的测试数据、代码等),测试用例支持基于测试逻辑对多个接口的调用与返回值测试 4. 输出的测试用例以json格式返回。 5. 软件解析json数据并生成测试用例文件 6. 软件运行测试用例文件并输出每个测试用例的结果;