简单接口自动化框架实现(Python+requests+pytest)

news/2024/9/24 1:46:22/

1、接口自动化流程

  • 1.需求分析
  • 2.挑选需要做自动化测试的功能
  • 3.设计测试用例
  • 4.搭建自动化测试环境[可选]
  • 5.设计自动化测试项目的架构[可选]
  • 6.编写代码
  • 7.执行测试用例
  • 8.生成测试报告并分析结果

2、框架结构 

--api           -->封装请求

--scripts      -->编写测试脚本

--data          -->存放测试数据

--utils           -->存放工具类

--report        -->测试报告生成目录
app.py         -->存放常量        

--pytest.ini   -->pytest配置文件 

 

测试脚本实现: 

 test_area.py

import requestsfrom api.AreaAPI import AreaAPI
from api.AreaDBAPI import AreaDBAPIclass TestArea:def setup_method(self, method):self.session = requests.Session()self.area_api = AreaAPI(self.session)def teardown_method(self, method):self.session.close()# 测试查询area列表接口def test_list_area(self):response = self.area_api.list_area()print("状态码:",response.status_code)print("响应体:",response.text)# 测试新增area接口def test_add_area(self):data = {"areaName":"12345","priority":"54321"}response = self.area_api.add_area(data=data)print("状态码:",response.status_code)print("响应体:",response.text)# 测试修改area接口def test_modify_area(self):id = AreaDBAPI.select_id_by_name("12345")json = {"areaId":id,"areaName":"1234","priority":"54321"}response = self.area_api.modify_area(json=json)print("状态码:",response.status_code)print("响应体:",response.text)# 测试删除area接口def test_remove_area(self):id = AreaDBAPI.select_id_by_name("1234")params = {"areaId":id}response = self.area_api.remove_area(params=params)print("状态码:",response.status_code)print("响应体:",response.text)

API实现:

AreaAPI.py

import requestsfrom app import AREA_URL, BASE_URLclass AreaAPI:def __init__(self,session):self.session = sessionself.list_area_url = BASE_URL + AREA_URL + "listarea"self.add_area_url = BASE_URL + AREA_URL + "addarea"self.modify_area_url = BASE_URL + AREA_URL + "modifyarea"self.remove_area_url = BASE_URL + AREA_URL + "removearea"# 1、查询areadef list_area(self):response = self.session.get(self.list_area_url)return response# 2、新增areadef add_area(self,data):response = self.session.post(self.add_area_url,data=data)return response# 3、修改areadef modify_area(self,json):response = self.session.put(self.modify_area_url,json=json)return response# 4、删除areadef remove_area(self,params):response = self.session.delete(self.remove_area_url,params=params)return response

app.py

BASE_URL = "http://127.0.0.1:1234/"
AREA_URL = "area/"

 数据库连接工具:

"""
实现封装:将pymysql的常见用法实现封装进一个专门工具类
封装的功能:1、获取连接 2、获取游标 3、释放资源
"""
import pymysqlclass DBUtils:# 工具函数1:获取连接@classmethoddef create_conn(cls):return pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='api_test',charset='utf8')# 工具函数2:获取游标@classmethoddef create_cur(cls,conn):return conn.cursor()# 工具函数3:释放资源@classmethoddef close_res(cls,conn,cur):if cur:cur.close()if conn:conn.close()@classmethoddef conn_commit(cls,conn):conn.commit()

 


http://www.ppmy.cn/news/1529590.html

相关文章

汽车英文单词缩写汇总

缩略词英文全文中文翻译备注ACCAdaptive Cruise Control自适应巡航控制ACCMAir Conditioner Compressor Module空调压缩机模块ASILAutomotive Safety Integrity Level汽车安全完整性等级BOMBill of Materials物料清单CCCChina Compulsory Certification中国强制性产品认证CSDCe…

基于JAVA+SpringBoot+Vue的医院资源管理系统

基于JAVASpringBootVue的医院资源管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈…

spring与springmvc整合

文章目录 spring与springmvc整合重复创建bean容器关系获取spring容器上下文 spring与springmvc整合 在项目中使用springmvc的时候,由于spring和springmvc是同源的,有时候大家会把所有的配置都扔到springmvc的配置文件中,而不去区分spring和s…

除了C# 、C++,C++ cli 、还有一个Java版的 db

DB_.java /*****************************************************************************创建时间 :2019年10月28日文件名 :Ldb.cs功能 :基本数据库的访问作者 :李锋Emai…

Hive企业级调优[1]——计算资源配置

目录 企业级调优 计算资源配置 YARN 资源配置 MapReduce 资源配置 企业级调优 计算资源配置 本教程的计算环境为 Hive on MR。计算资源的调整主要包括 YARN 和 MapReduce。 YARN 资源配置 1)YARN 配置说明 需要调整的 YARN 参数均与 CPU、内存等资源有关&am…

开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界(一)

一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图像和视频理解能力,以及多语言支…

[Matplotlib 教程] 如何用3D折线图直观展示多维数据变化

文章目录 如何用3D折线图直观展示多维数据变化1 👩‍💻 主要思路:2 💡 代码亮点:3 📈 可应用的场景:4 ✨ 可视化小技巧:5 🚀 完整代码: 如何用3D折线图直观展…

Linux C高级 day2

一、 1.mkdir ../dir1 && touch ../dir/file 2.cp -r /mnt/dir1/* /home/dir2 3.pwd 4.ls -l 5.ip或ifconfig 6.top 7.ps aux | grep python 8.kill -9 7580 9.ping 10.find /usr -type f -name *name* 11. a-> 输入内容->ese->shift冒号 wq回车 …