# apiTestP2P **Repository Path**: sheerysong/apiTestP2P ## Basic Information - **Project Name**: apiTestP2P - **Description**: 金融项目P2P - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-11 - **Last Updated**: 2022-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, 金融项目, 接口自动化测试 ## README # 项目目录结构 apiTestP2P ######|-- api # 封装接口类 ######|-- script # 定义测试脚本 ######|-- data # 数据文件(参数化数据) ######|-- report # 存放测试报告 ######|-- lib # 存放第三方文件 ######|-- log # 存放日志文件 ######|-- app.py # 定义项目配置信息(全局变量) --config.py ######|-- utils.py # 封装工具类 ######|-- run_suite.py # 封装测试套件,执行测试的主程序 ## 接口自动化依赖包: ###### requests 发请求 ###### parameterized 参数化 ###### pymysql 连接数据库 ###### HTMLTestReport 生成测试报告 ###### common.py 公共断言方法 ###### beautifulsoup4 ## 测试类型 接口自动化测试 python + requests + unittest + log + git 版本控制 后续完善:参数化parameterized + 持续集成jenkins ## 搭建框架-编写代码步骤 ### 1、初始化日志配置 ### 2、封装登录接口类、认证接口类、托管接口类、投资接口类 ### 3、编写测试报告 ## 知识点 ###### 1、session会话, 日志logging(定位bug), ###### 2、全局变量 ###### 3、接口测试框架搭建,封装公共断言方法,清理测试数据方法,第三方解析HTML方法 ###### 4、断言、参数化 ###### 5、测试报告 ###### 6、运用的模块或包:requests os logging unittest HTMLTestReport time random pymysql bs4(BeautifulSoup) ###### ###### 掌握如何使用BeautifulSoup解析HTML文档 1、Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python库. 2、安装命令: ` pip install beautifulsoup4` 3、如何使用 ```yaml from bs4 import BeautifulSoup soup = BeautifulSoup(open("index.html"), "html.parser") soup = BeautifulSoup("data", "html.parser") ``` ## 实现接口 ```yaml 1、系统信息 2、登录注册 3、开通账户(开户-认证托管) 4、充值提现 5、投资 6、我的首页 7、单接口:setUp tearDown - 每个测试用例前后都要调用 多接口:投资流程测试 : setUpClass(初始化脚本、) tearDownClass(关闭会话、清理测试数据) -在该类的所有测试用例执行之前和执行之后执行。 ``` ## 可以针对接口的参数设置默认值,减少脚本调用的工作量 单个消息体: data : {"Content-Type":"application/x-www-form-urlencoded"} json: {"Content-Type":"application/json"} 多消息体:需要传递多种参数数据格式data + files 请求体为 :{"Content-Type":"multipart/form-data")} 需要在封装接口时加上files参数,如: return session.post(url=self.approve_url, data=data, files={'x': 'y'}) ## 项目难点: 封装第三方接口方法,需要返回!!!用到beautifulsoup4 获取响应中于form表单的数据, 并提取为后续第三方请求的参数,提取指定的name作为参数名,value作为参数值 ## 扩展 测试数据管理  创建data数据目录结构,管理测试初始数据  创建test_data.json数据文件  代码优化实现  通过until.py文件创建获取测试数据方法  每个测试类创建调用获取测试数据的对象  通过数据对象读取键对应的取值