day:29 python接口测试——断言、封装、关联接口

news/2025/3/25 20:25:51/文章来源:https://www.cnblogs.com/junting/p/18792262

一.request断言

1、if断言

代码:

if wb["msg"]=="登录成功!":print("ok")
else:print("no")

 

案例:

import   requests
s=requests.Session()
url1="http://49.233.201.254:8080/cms/manage/loginJump.do"
data1={'userAccount':'admin','loginPwd':'123456'}
h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=s.request("post",url=url1,data=data1,headers=h1)
wb=jk1.json()
print(jk1.json())
if wb["msg"]=="登录成功!":print("ok")
else:print("no")

 

2、assert断言

h1={"Content-Type":"application/x-www-form-urlencoded"}
jk1=s.request("post",url=url1,data=data1,headers=h1)
wb=jk1.json()
print(jk1.json())
assert  wb["msg"]=='登录成功'
print(jk1.cookies)

  

 

 

二.封装接口

1、方法1:引入模块:

代码:requests.Session()

使用 s. 来保持对话

import   requests
s=requests.Session()
class  Cms(object):def __init__(self):passdef  dl(self):url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do"data1={'userAccount':'admin','loginPwd':'123456'}h1={"Content-Type":"application/x-www-form-urlencoded"}jk1=s.request("post",url=url1,data=data1,headers=h1)print(jk1.json())def   yh(self):url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"data2={'startCreateDat':'','endCreateDate':'','searchValue':'','page':'1'}h2={"Content-Type":"application/x-www-form-urlencoded"}jk2=s.request("post",url=url2,data=data2,headers=h2)print(jk2.text)
if __name__ == '__main__':dx=Cms()dx.dl()dx.yh()

 

2、方法2:使用cookies 保持会话

 案例:

import   requests
class  Cms(object):
    def __init__(self):
        pass
    def  dl(self):
        url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do"
        data1={'userAccount':'admin','loginPwd':'123456'}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=requests.request("post",url=url1,data=data1,headers=h1)
        print(jk1.text)
        c=str(jk1.cookies)
        print(c) #<RequestsCookieJar[<Cookie JSESSIONID=DAB3F94092C907F3BAD009410A8778E0 for 49.233.201.254/cms/>]>
        self.cookie=c.split(" ")[1#JSESSIONID=6D60B90E937058D8B91B66A18671A4CB
        # print(cookie)
    def   yh(self):
        url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
        data2={
        'startCreateDat':'',
        'endCreateDate':'',
        'searchValue':'',
        'page':'1'
        }
        h2={"Content-Type":"application/x-www-form-urlencoded",
            "Cookie":self.cookie}
        jk2=requests.request("post",url=url2,data=data2,headers=h2)
        print(jk2.text)
if __name__ == '__main__':
    dx=Cms()
    dx.dl()
    dx.yh()

案例3:

import   requests
class  Cms(object):
    def __init__(self):
        pass
    def  dl(self):
        url1 = "http://49.233.201.254:8080/cms/manage/loginJump.do"
        data1={'userAccount':'admin','loginPwd':'123456'}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=requests.request("post",url=url1,data=data1,headers=h1)
        print(jk1.text)
        c=str(jk1.cookies)
        print(c) #<RequestsCookieJar[<Cookie JSESSIONID=DAB3F94092C907F3BAD009410A8778E0 for 49.233.201.254/cms/>]>
        cookie=c.split(" ")[1#JSESSIONID=6D60B90E937058D8B91B66A18671A4CB
        # print(cookie)
        return cookie
    def   yh(self):
        d=self.dl()
        url2="http://49.233.201.254:8080/cms/manage/queryUserList.do"
        data2={
        'startCreateDat':'',
        'endCreateDate':'',
        'searchValue':'',
        'page':'1'
        }
        h2={"Content-Type":"application/x-www-form-urlencoded",
            "Cookie":d}
        jk2=requests.request("post",url=url2,data=data2,headers=h2)
        print(jk2.text)
if __name__ == '__main__':
    dx=Cms()
    # dx.dl()
    dx.yh()
图片

关联接口

省份接口:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince城市接口http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupport 入参CitybyProvinceName:{{cs}}
import   requests
s=requests.Session()
class  Gl(object):
    def __init__(self):
        pass
    def  sf(self):
        url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
        jk=s.post(url=url)
        print(jk.text)
    def  cs(self):
        url1=r"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity"
        data1={'byProvinceName':"浙江"}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=s.post(url=url1,data=data1,)
        print(jk1.text)
if __name__ == '__main__':
    dx=Gl()
    dx.sf()
    dx.cs()
案例2:图片
import   requests
import  re
s=requests.Session()
class  Gl(object):
    def __init__(self):
        pass
    def  sf(self):
        url="http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportProvince"
        jk=s.post(url=url)
        print(jk.text)
        self.tq=re.findall('<string>(.+?)</string>',jk.text)
        # print(tq)
    def  cs(self):
        url1=r"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity"
        data1={'byProvinceName':self.tq[8]}
        h1={"Content-Type":"application/x-www-form-urlencoded"}
        jk1=s.post(url=url1,data=data1,headers=h1)
        print(jk1.text)
if __name__ == '__main__':
    dx=Gl()
    dx.sf()
    dx.cs()

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于光度立体的复杂结构件表面缺陷检测数据集

为解决非平面零部件缺陷检测时,高低起伏的形貌所形成的阴影或表面反光导致的误报和漏检问题,作者提出了一种基于深度学习和光度立体的新型缺陷检测技术。摘要 为解决非平面零部件缺陷检测时,高低起伏的形貌所形成的阴影或表面反光导致的误报和漏检问题,作者提出了一种基于深…

02_Redis之数据类型及操作

本文介绍redis常用数据类型和相关操作。02_Redis之数据类型及操作一、String类型及操作 是二进制安全的,可以存放任意类型的数据。 # 设置与获取值 set k1 value1 get k1# 设置key对应的值为string 类型的value。如果key已存在,返回0,nx 是 not exist 的意思 setnx k1 value…

解析四款功能强大的GIS工具箱软件

随着GIS技术的不断发展,各类专业的GIS工具箱软件不断涌现,帮助专业人士在空间数据分析、地图可视化、三维建模等方面提供强有力的支持。本文将介绍四款GIS工具箱软件,这几款软件专注于GIS切片和GIS数据处理,适用于多个领域的地理信息数据处理,能够帮助用户高效处理和可视化…

什么是「Agentic 工作流程」?丨社区来稿

摘要分享者:Richard 林旅强(RTE 开发者社区联合主理人)什么是「Agentic 工作流程」?它是一种让 AI 智能代理(Agent)更主动、更灵活、更像人的方式来处理复杂任务的系统。刚才读到了一篇言简意赅的文章(链接在文末),我想就基于以下每一张文中的图示,来说说什么是 Agen…

2025中国生命科学与医疗行业调研报告160+份汇总解读|附PDF下载

原文链接:https://tecdat.cn/?p=41106 中国生命科学与医疗行业正经历深刻变革:政策监管趋严、技术创新加速、全球化竞争加剧,企业需在不确定性中寻找增长锚点。本报告通过数据驱动的分析框架,深度解析行业现状、挑战及未来机遇,为从业者提供战略参考。 本报告汇总解读基于…

可结合的元素对

转换条件:lowbit(a[i]+a[j])==a[i]+a[j] 转换为 a[i]+a[j]=2^k, 第一个for按顺序枚举a[i],然后第二个for枚举k的所有情况,两层循环中找a[j](即a[i]-2^k)的个数即可 代码展示: #include<bits/stdc++.h> #define int long long using namespace std;int a[100010]; un…

专题|Python贝叶斯金融数据应用实例合集:随机波动率SV模型、逻辑回归、参数更新、绩效比较BEST分析亚马逊股票、标准普尔500指数|附数据代码

原文链接:https://tecdat.cn/?p=41020 原文出处:拓端数据部落公众号 本专题合集系统梳理了贝叶斯方法在金融数据分析与分类建模中的前沿应用。合集聚焦于PyMC3概率编程框架,深度探讨了共轭先验参数更新、贝叶斯逻辑回归、贝叶斯夏普比率等核心算法在实际场景中的落地实践。…

探秘Transformer系列之(18)--- FlashAttention

从零开始解析Transformer,目标是:(1) 解析Transformer如何运作,以及为何如此运作,让新同学可以入门;(2) 力争融入一些比较新的或者有特色的论文或者理念,让老鸟也可以有所收获。探秘Transformer系列之(18)--- FlashAttention 目录0x00 概述0.1 问题0.2 其它解决方案0.3…

day:29 fiddler弱网测试

1、模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多2、Fiddler弱网的原理 Rules—>Cutomize Rules打开CustomRules.js 文档在文件中搜索关键字,m_SimulateModem让我们来分析一下这几行代码: 上传速…

【数据结构/排序】堆排序C++代码模板

// 下沉调整函数 void sift_down(vector<int>& arr, int i, int n) {while (i < n) {int largest = i; // 当前节点int left = 2 * i + 1; // 左子节点int right = 2 * i + 2;// 右子节点// 找到左右子节点中的较大者if (left < n && arr[left] &…