# api_test_frame **Repository Path**: tangxinx/api_test_frame ## Basic Information - **Project Name**: api_test_frame - **Description**: 码尚pytest接口自动化测试框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2023-06-25 - **Last Updated**: 2023-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **接口自动化测试规则:** **1、检查四个关键字:name,base_url,request,validate** **2、在request关键字下包含二格关键字:method,url** **3、传参方式:在reguest一级关键字下,通过二级关键字参数。**** 如果是get请求,通过params传参。 如果是post请求: 传json格式,通过json关键字传参。 传表单格式,通过data关键字传参。 传文件格式,通过files关键字传参,如: files: media:"E:\\api_frame_test\\logo.png" **4、如果需要做接口关联的话,那么必须使用一级关键字: extract** 提取: 如:json提取方式 extract: access_token: access_token 如:正则表达式提取方式 extract: access_token: '"access_token":"(.*?)"' 取值: 如: ${get_extract_data(access_token)} **5、热加载,当yaml需要使用动态参数时,那么可以在debug_talk.py文件中写方法调用** 注意:传参时,需要什么类型的数据,需要做强转。int(mix),int(max),如: # 获取随机数 def get_random_number(self,mix,max): return random.randint(int(mix),int(max)) 热加载取值: ${get_random_number(100000,999999)} **6、此框架暂时只支持两种断言方式:分别是equals(相等)和contains(包含)断言:** 如: validate: - equals: {status_code: 200} - equals: {expires_in: 7200} - contains: access_token **7、数据驱动使用一级关键字parameterize实现** 如; yaml写法: parameterize: - ['name','appid','secret','grant_type','assert_str'] - ['获取access_token统一鉴权码','wx8cbefbfc3b8c2f3b','4fa4582bf6b362742f079a3b7709ccad','client_credential','access_token'] - ['appid必填项检查',"",'4fa4582bf6b362742f079a3b7709ccad','client_credential','errcode'] - ['secret必填项检查','wx8cbefbfc3b8c2f3b',"",'client_credential','errcode'] ddt写法: $ddt{name}:引用parameterize中的参数name **8、日志监控,异常处理,以及基础路径的设置。** **9、框架使用说明** 各目录含义: common:工具类 config:配置文件,config.yaml:配置基础url和log日志;extract.yaml:接口提取字段存放文件。 docs:接口文档说明 logs:日志文件 reports:allure报告 server:一个加密的服务接口,可忽略。 testcases:测试用例。php:论坛的网站;user:码尚商城登录加密的案例;微信:微信公众号平台。 conftest:pytest配置全局文件 environment.xml:allure报告环境 pytest.ini:pytest运行集 requiremens.txt:框架所需的第三方库 run.py:框架运行入口 testcases中写了几个案例: 论坛的网站:论坛首页、sign签名 码尚商城:用户登录base64、md5、rsa加密。 微信公众号:登录、标签的增删改查和文件上传。其中登录做了3个参数化:获取access_token统一鉴权码、appid必填项检查、secret必填项检查。