接口测试之python+rquest+unittest分层自动化框架

news2024/9/21 2:38:41

接口测试之接口po框架

一、新建一个项目

 接口自动化框架设计实战:

第一包:config

案例:

#登录接口
dl_url = 'http://cms.duoceshi.cn/cms/manage/loginJump.do'
dl_d = {'userAccount': 'admin', 'loginPwd': '123456'}
dl_h = "Content-Type:application/x-www-form-urlencoded"

#栏目接口
lm_url= "http://cms.duoceshi.cn/cms/manage/findCategoryByPage.do"
lm_d= {'parentId': '', 'categoryName': '', 'page': '1'}
lm_h = {"Content-Type": "application/x-www-form-urlencoded"}

第二包:api  组建接口包

#组建并发送接口
import requests
from  config.cms_config import  *
s=requests.Session()
class  Cms(object):
    def __init__(self):
        pass
    def dl(self):
        jk=s.post(url=dl_url,data=dl_d,json=dl_h)
        #print(jk.text)
        return  jk
    def lm(self):
        jk1=s.post(url=lm_url,data=lm_d,json=lm_h)
        # print(jk1.text)
        return  jk1
if __name__ == '__main__':
    c=Cms()
    c.dl()
    c.lm()

第三个包:testcase存放用例,

import  unittest
from  api.cms_api import  *
class  Cms_Test(unittest.TestCase):
    def setUp(self) -> None:
        pass
    def tearDown(self) -> None:
        pass
    def  test001(self):
        s=Cms().dl()
    def  test002(self):
        l=Cms().lm()
if __name__ == '__main__':
    V=Cms_Test()
    V.test001()
    V.test002()

第四个包:report包  报告包

 第五包:utils包工具类包

第六个包:

from utils.HTMLTestRunner3_New import  HTMLTestRunner
import unittest,os,time
from  utils.mail3 import SendMail
xm_path=os.path.join(os.path.abspath(os.path.dirname(os.getcwd())))  #项目路径
print(xm_path)
test_path=os.path.join(os.path.abspath(os.path.dirname(os.getcwd())),'testcase')#测试用例路径
print(test_path)
report_path=os.path.join(os.path.abspath(os.path.dirname(os.getcwd())),'report')#报告路径
print(report_path)
new=time.strftime('%y-%m-%d %H-%M-%S')
f=report_path+"/"+str(new)+'_report.html'
def  bg(x):
    d=unittest.TestLoader().discover(start_dir=test_path,pattern=x)
    file=open(f,"wb")
    r=HTMLTestRunner(stream=file,description="用例执行情况",tester='hz',title="cms接口po框架")
    r.run(d)
def  yj():
    fs=SendMail(send_msg=f,attachment=f)
    fs.send_mail()
if __name__ == '__main__':
    bg("cms*.py")
    yj()

二、邮箱设置

(1)

 

 

LTTYRPXNHUVXSJVG

 查看邮件:

 断言:

接口断言

分类: 教学笔记 / 教学笔记二

 参考:

讲解稿:
首先在pycharm里新建一个项目,然后构建6个包,分别是api构建包、conf配置包、report报告包、run运行包、testcase用例包以及utils工具包。
其中api包用来组建并发送接口请求,conf包用来存放所有接口的入参信息,report包用来放置运行所有测试用例生成的报告,run包用来自动加载所有的测试用例、并且运行,testcase包用来继承unittest单元测试框架、组建接口测试用例,utils包用来存放发送邮件和生成报告模块。
然后,在conf包中把参数值都写好,比如url、data和header;在api包中组建接口和发送接口请求,导入request和conf,参数名引用conf里面的,创建一个全局的session对象用来保持会话的状态和管理上下文,把各个接口的请求方式编写出来,同时用rep.json()来转换,全部封装在一个类里;在testcase包中组建测试用例导入unittest模块、api里面的Cms类,定义一个类,且继承unittest中的TestCase,用匿名对象来调用实例方法,然后进行断言,需要注意的是断言内容要与结果完全一致;最后,在run包里导入unittest、time、mail3、HTMLTestRunner,定义项目的路径、用例的路径、测试报告的名称、定义自动搜索用例,执行测试用例并生成报告,其中的时间戳也需要注意一下;此时,测试用例报告就会在report包里,最后用谷歌浏览器打开就可以查看了。

 这是我整理的《2024最新Python自动化测试全套教程》,以及配套的接口文档/项目实战【网盘资源】,需要的朋友可以下方视频的置顶评论获取。肯定会给你带来帮助和方向。

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IP地址申请SSL证书的详细流程(ip地址实现https访问)

IP地址SSL证书是一种特殊的SSL/TLS证书,它被设计用于保护直接通过IP地址访问的服务。这种证书可以为IP地址提供HTTPS加密和身份验证。 IP地址申请SSL证书的详细流程如下: IP SSL证书-JoySSLhttps://www.joyssl.com/certificate/select/ip_certificate.…

查看pycharm里面的库的版本

1. 点击右下角 点击 2. 点击设置

金蝶云星空与致远 OA 的集成:实现高效流程审批

在当今数字化转型中,企业对于信息化系统的集成需求日益增长。金蝶云星空作为一款强大的企业资源管理系统,致远 OA 作为优秀的协同办公平台,两者的对接集成能够为企业带来更高效、更流畅的业务流程和审批体验。 一、集成的背景与意义 随着企业…

SpringBoot轻松实现邮件发送-copy即用

👩🏽‍💻个人主页:阿木木AEcru (更多精彩内容可进入主页观看) 🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》 💹每一次技术突破,都是对自我能力的挑战和超越。 目录 前言一…

keeplive配置详解与haproxy配置详解

一、keepalive相关知识 1.1 keepalive介绍 keepalive即LVS集群当中的高可用架构,只是针对调度器的高可用。是高可用的HA架构。 keepalive就是基于VRRP协议来实现LVS高可用的方案。 1、组播地址 224.0.0.18,根据组播地址进行通信,主备之间发…

【学习笔记】A2X通信的协议(一)- 核心内容

3GPP TS 24.577 V18.1.0的技术规范,主要定义了5G系统中A2X通信的协议方面,特别是在PC5接口和Uu接口上的A2X服务。以下是文件的核心内容分析: 文档概述与目的: 技术规范背景:文档是3GPP在5G系统(5GS&#x…

WEEK 4 周报

这周专题是图论: 目录 这周专题是图论: 树和图的存储及遍历: 存储: 遍历:(每个点只遍历一次,所以需要卡一个布尔数组标记是否已经被遍历) 1.深度优先遍历: 树的重心: 2.宽度…

Apache POl初学

介绍 入门案例 通过POI写入操作 /*** 使用POI操作Excel文件*/ public class POITest {/*** 通过POI创建Excel文件并写入文件内容**/public static void write() throws Exception{//在内存中创建一个Excel文件XSSFWorkbook excel new XSSFWorkbook();//在Excel中创建一个Shee…

麦田物语第十九天

系列文章目录 麦田物语第十九天 文章目录 系列文章目录一、保存和加载场景中的物品二、设置鼠标指针根据物品调整 一、保存和加载场景中的物品 本小节我们想要解决一个问题,就是当我们跳转场景后,在返回之前场景,发现场景中被我们拾取的物品…

md文件转doc文件

目录 起因 实践 python方式安装 安装包安装 转换 后记 起因 近期需要提交一些文件出去,一般都是要word或pdf版的,但是手头只有md格式的,于是需要将md转为doc 实践 问了下度娘,pandoc是个不错的方法,可以通过下…

【C++】:错误处理机制 -- 异常

目录 前言一,C语言传统的处理错误的方式二,C异常的概念三,异常的使用3.1 异常的抛出和匹配原则3.2 在函数调用链中异常栈展开匹配原则3.3 异常的重新抛出3.4 异常规范 四,自定义异常体系五,异常的优缺点 点击跳转至文章…

经典⾯试题,循环中使⽤闭包解决 var 定义函数的问题

⾸先因为 setTimeout 是个异步函数,所有会先把循环全部执⾏完毕,这时候 i 就是 5了,所以会输出6个 5。 解决办法两种,第一种使用闭包 : 第⼆种就是使用 setTimeout 的第三个参数: 第三种就是使用 let 定义 …

Power功效分析之方差原理及案例教程

Power功效分析常用于实验研究时样本量的计算(或功效值计算),实验研究中进行方差分析的情况较多,在SPSSAU中单独将方差放成一个计算Power的方法,其具体包括单因素方差/双因素方差和多因素方差,具体如下表格所…

Callable 与 Runnable:多线程编程中的两大接口对比

Callable 与 Runnable:多线程编程中的两大接口对比 1、主要区别1.1 返回值1.2 使用方式 2、适用场景3、示例 💖The Begin💖点点关注,收藏不迷路💖 在Java多线程编程中,Callable和Runnable是两个核心接口&am…

如何打造 BeatBuddy:一款分析你的 Spotify 数据的 Web 应用

欢迎来到雲闪世界!我将解释我是如何构建 BeatBuddy 的,这是一款分析您在 Spotify 上收听内容的网络应用。受 Spotify Wrapped 的启发,它旨在解读您当前的心情并提供您可以根据该分析进行调整的建议。 如果你不想阅读所有内容,只想…

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub,可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统,并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

流程挖掘,为光伏企业重塑确定的竞争力

2023年12月15日,2023中资光伏出海大会在江苏南京隆重举行。国内领先的流程挖掘服务商望繁信科技应邀出席大会,与来自海内外的重要领导、重磅嘉宾、行业大咖齐聚一堂,聚焦“数字化、全球化、本地化”,共同探讨中资光伏企业的出海机…

windows11 DNS手动配置过DNS,在恢复成自动获取后,无法自动获取到DNS,网卡里面DNS还是显示之前手动配置的DNS

windows11 DNS一开始手动配置过DNS,然后在恢复成自动获取后,网卡无法自动获取到DNS,并且网卡里面DNS显示还是之前手动配置的DNS。 系统版本:windows11 企业版、版:10.0.22621 版本 22621 解决办法: 注册表“HKEY_LO…

RHEL9网络设定及网络脚本

1. 添加一张网卡 2. 重写一个网卡配置文件 [rootlocalhost ~]# cd /etc/NetworkManager/system-connections/ [rootlocalhost system-connections]# ls ens160.nmconnection [rootlocalhost system-connections]# vim ens224.connection [rootlocalhost system-connections…

大模型应用(六)如何写好一个prompt,理论+实践

前言 设定是四个基本要素之一,没有一个好的prompt,就绝对不可能有一个好的agent。 如何写prompt的大部分是我粘的,实在是懒得写了。不感兴趣可以直接跳实战。 什么是prompt 大语言模型(LLM)的能力并不是被设计出来…