pytest parametrize多参数接口请求及展示中文响应数据
编写登陆接口
app.py
from flask import Flask, request, jsonify, Responseapp = Flask(__name__)@app.route('/login', methods=['POST'])
def login():username = request.form.get('username')password = request.form.get('password')# 在这里编写你的登录验证逻辑if username == 'admin' and password == 'password':# 登录成功response = jsonify({'message': '登录成功'})response.status_code = 200else:# 登录失败response = jsonify({'message': '登录失败'})response.status_code = 401return responseif __name__ == '__main__':app.run()
import requests
import pytest# 使用@pytest.mark.parametrize装饰器定义了一组参数化的测试数据
@pytest.mark.parametrize('data, username, password, status_code', [('登陆成功', 'admin', 'password', 200),('登陆失败', 'admin1', 'password1', 401)
])
def test_case01(data, username, password, status_code):# 打印测试用例的信息print('\n[测试用例]', data)# 构造登录请求的URL和数据url = 'http://127.0.0.1:5000/login'data = {"username": username,"password": password}# 发送POST请求res = requests.post(url=url, data=data)# 响应内容展示为中文response_text = res.text.encode('utf-8').decode('unicode_escape')print(response_text)# 断言实际的状态码与预期的状态码是否相等assert 200 == status_codeif __name__ == '__main__':# 使用pytest执行测试用例pytest.main(['-v', 'test_case.py'])
这段代码是一个使用pytest和requests库编写的测试脚本,用于测试登录功能。它包含一个名为test_case01的测试用例,使用@pytest.mark.parametrize装饰器定义了一组参数化的测试数据。
测试数据包括登录成功和登录失败的情况。每组测试数据都有data、username、password和status_code四个参数。data参数用于描述测试用例的信息,username和password参数是登录时使用的用户名和密码,status_code参数是预期的响应状态码。
测试用例函数内部首先打印测试用例的信息,然后构造登录请求的URL和数据。接下来,使用requests.post方法发送POST请求,并将响应保存在res变量中。
为了将响应内容以中文展示,使用了以下代码行:
response_text = res.text.encode('utf-8').decode('unicode_escape')
这段代码将响应的文本内容进行了编码和解码操作。首先,使用encode('utf-8')将文本内容编码为UTF-8格式的字节串,然后使用decode('unicode_escape')将字节串解码为Unicode字符串。这样做可以确保中文字符正确显示。
最后,使用print(response_text)将响应内容打印出来。然后使用assert语句来断言实际的状态码与预期的状态码是否相等。
在脚本的最后部分,通过pytest.main(['-v','test_case.py'])来执行测试用例。
相关文章:
pytest parametrize多参数接口请求及展示中文响应数据
编写登陆接口 app.py from flask import Flask, request, jsonify, Responseapp Flask(__name__)app.route(/login, methods[POST]) def login():username request.form.get(username)password request.form.get(password)# 在这里编写你的登录验证逻辑if username admin…...
电视连续剧 ffmpeg 批量去掉片头片尾
思路: 一、用python获取每集的总时长 二、把每集的时间,拼接成想要的ffmpeg的剪切命令命令。 1、用python获取每集的总时长 1,安装moviepy库,直接安装太慢,换成国内的源 pip install moviepy -i http://mirrors.aliyu…...
二进制搭建kubernetes
二进制搭建kubernetes 一、常见的K8S部署方式1.Minikube2.Kubeadmin3.二进制安装部署 二、二进制搭建K8S(单台master)1.部署架构规划2.系统初始化配置3.部署 docker引擎4.部署 etcd 集群4.部署 Master 组件5.部署 Worker Node 组件6.部署网络组件 三、负载均衡部署1.配置load b…...
TDengine函数大全-系统函数
以下内容来自 TDengine 官方文档 及 GitHub 内容 。 以下所有示例基于 TDengine 3.1.0.3 TDengine函数大全 1.数学函数 2.字符串函数 3.转换函数 4.时间和日期函数 5.聚合函数 6.选择函数 7.时序数据库特有函数 8.系统函数 系统函数 TDengine函数大全DATABASECLIENT_VERSIONSE…...
北京互联网营销服务商浩希数字科技申请1350万美元纳斯达克IPO上市
来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于北京的互联网营销服务商浩希数字科技(Haoxi Health Technology Limited )近期已向美国证券交易委员会(SEC)提交招股书,申请在纳斯…...
ElementUI浅尝辄止22:Alert 警告
用于页面中展示重要的提示信息。 常见于消息提示或警告框。 1.如何使用? 页面中的非浮层元素,不会自动消失。 //Alert 组件提供四种主题,由type属性指定,默认值为info。<template><el-alerttitle"成功提示的文案&…...
HCIP的mgre实验
题目 拓扑图 IP地址配置和缺省 R1 [r1]int g0/0/1 [r1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 Aug 2 2023 20:38:20-08:00 r1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/1 has entered the UP state. [r1-GigabitEtherne…...
redis cluster集群搭建
集群搭建 启动6个redis实例 创建6份配置文件 mkdir redis-cluster cd redis-cluster mkdir 7001 7002 7003 8001 8002 80037001文件夹创建配置文件redis.conf port 7001 cluster-enabled yes cluster-config-file nodes-7001.conf cluster-node-timeout 5000 appendonly ye…...
小红书笔记爬虫
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…...
国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名
前言 GmSSL是国密算法的工具库(主要包含SM2、SM3、SM4和国密SSL证书生成等功能),项目本身是OpenSSL的分支,但是截至文章发布为止,OpenSSL主分支的国密算法并不完善,目前并不支持签名和解签,所以…...
2023年9月惠州/深圳CPDA数据分析师认证找弘博创新
CPDA数据分析师认证是大数据方面的认证,助力数据分析人员打下扎实的数据分析基础知识功底,为入门数据分析保驾护航。 帮助数据分析人员掌握系统化的数据分析思维和方法论,提升工作效率和决策能力,遇到问题能够举一反三,…...
it运维监控管理平台,统一运维监控管理平台
随着系统规模的不断扩大和复杂性的提高,IT运维管理的难度也在逐步增加。为了应对这一挑战,IT运维监控管理平台应运而生。本文将详细介绍IT运维监控管理平台的作用和优势以及如何选择合适的平台。 IT运维监控管理平台的作用管理平台 IT运维监控管理平台是…...
TDengine 官网换了新“皮肤”,来看看这个风格是不是你的菜
改版升级,不同以“网”!为了更好地服务客户,让大家能够更便捷、清晰地了解我们的产品和功能,我们决定给 TDengine 官网换个新“皮肤”~精心筹备下,新官网终于成功与大家见面啦——https://www.taosdata.com/。TDengine…...
MFC:自绘CListBox,GetText返回一个乱码
问题描述 自绘CListBox,GetText返回一个乱码,并且还会伴随以下断言 解决方案 ListBox Control 属性【Has Strings】改为True即可...
shell 脚本发布前后端代码
shell 脚本发布前后端代码 1、发布前端2、发布后端 1、发布前端 #! /bin/bashif [ ! $1 ] thenecho "this command needs 1 parameters"exit fiif [ -d "/usr/local/nginx/html/xxxx-$1" ] thenecho "file exists: /usr/local/nginx/html/xxxx-$1, p…...
我的私人笔记(Linux中安装mysql)
1.安装wget:yum -y install wget 2.下载mysql社区版本源并安装 wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum install -y mysql57-community-release-el7-10.noarch.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mys…...
IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Maven目录结构和idea的整合
Maven工程目录结构约束(约束>配置>代码) 项目名 src【书写源代码】 main【书写主程序代码】 java【书写java源代码】resources【书写配置文件代码】 test【书写测试代码】 java【书写测试代码】 pom.xml【书写Maven配置】 测试步骤(进入项目名根目录【在根…...
Android Automotive概述
Android开发者的新赛道 在智能手机行业初兴起时,包括BAT在内许多传统互联网企业都曾布局手机产业,但是随着手机市场的基本定型,造车似乎又成了各大资本下一个追逐的方向。百度、小米先后宣布造车,阿里巴巴则与上汽集团共同投资创…...
iOS 16.4更新指南:问题解答与新功能一览
我应该更新到iOS 16.4吗?这是许多iPhone用户在新更新可用时问自己的一个常见问题。最新的iOS版本提供了各种功能和改进,因此更新的诱惑力很大。 但是,在更新之前,你应该考虑几个因素,以确保安装过程顺利成功。这些因素…...
Vue + Element UI 前端篇(八):管理应用状态
使用 Vuex 管理应用状态 1. 引入背景 像先前我们是有导航菜单栏收缩和展开功能的,但是因为组件封装的原因,隐藏按钮在头部组件,而导航菜单在导航菜单组件,这样就涉及到了组件收缩状态的共享问题。收缩展开按钮触发收缩状态的修改…...
基于最优潮流与随机噪声的欧洲电网合成数据生成方法
1. 项目概述:为什么我们需要一个“人造”的欧洲电网?在电力系统这个行当里干了十几年,我越来越觉得,我们正处在一个尴尬的十字路口。一方面,以深度学习为代表的机器学习技术,正以前所未有的热情涌入电力系统…...
AI社交对话设计:如何避免商业场景中的期望违背与尴尬感
1. 项目概述:当AI的“聪明”变成商业场景的“尴尬”最近几年,AI驱动的社交对话机器人,从智能客服到虚拟销售助理,几乎成了商业互动的标配。我们总在谈论它们如何提升效率、降低成本、提供7x24小时服务。但作为一名在数字化营销和客…...
差分隐私矩阵机制与FFT优化:保护多轮迭代计算的高效方法
1. 差分隐私矩阵分解:从理论到工程实践在联邦学习、推荐系统这些需要频繁进行多轮迭代计算的场景里,我们常常面临一个核心矛盾:既要利用全体参与者的数据来训练一个高质量的全局模型,又要确保任何单个参与者的敏感信息不会在训练过…...
LLM可观测性实战:生产环境AI应用的监控体系建设
为什么LLM应用的监控与传统软件完全不同 传统软件监控关注的核心指标很清晰:响应时间、错误率、吞吐量、CPU/内存使用率。这些指标背后的系统行为是确定性的——同样的输入,永远产生同样的输出。LLM应用打破了这个假设。面对同样的用户输入:-…...
别再手动跑Jupyter了!Lindy标准化流程强制接管你的分析工作流(仅剩最后23个企业未迁移)
更多请点击: https://codechina.net 第一章:Lindy数据分析自动化流程的演进逻辑与核心价值 Lindy效应指出,一个事物的预期剩余寿命与其当前已存在时间成正比——在数据分析领域,这一原理映射为:越经受住多轮业务迭代、…...
为什么有些论文,答辩老师越听越不敢卡?
很多学生都经历过一种很明显的反差。有些同学一进答辩室, 老师状态特别紧。问题一个接一个; 追问不断; 语气越来越严肃。但还有一种情况。有些同学刚讲几分钟, 现场气氛就明显变了。老师开始点头; 追问越来越少&#x…...
云原生数据库管理:在Kubernetes上运行数据库的完整指南
云原生数据库管理:在Kubernetes上运行数据库的完整指南 引言 在云原生环境中,数据库管理是一个复杂但至关重要的任务。与传统的数据库部署方式不同,在Kubernetes上运行数据库需要考虑容器化、高可用性、数据持久化等多个方面。 作为一名资深的…...
从零读懂RDMA流控机制:为什么RC需要“信用”
我们在之前的文章里讲过,RDMA RC(可靠连接)模式像一条点对点的专用通道:发送端发数据,接收端确认,丢了包硬件重传。一切看起来很简单,但有一个关键问题没解决: 发送端怎么知道接收端“吃得下”自己发过去的数据? 如果发送端不管不顾地疯狂发,而接收端处理不过来,数据…...
AI代理运行时基础设施:从上下文溢出到持久化事件日志
1. 这不是新赛道,是 runtime 层的“操作系统时刻”来了你有没有在深夜调试一个跑了三小时的 AI 代理,突然发现它开始胡言乱语?不是模型崩了,不是 prompt 写错了,而是——它的“记忆”被挤掉了。上下文窗口就那么大&…...
RESTful API测试:从Postman点按到契约级可信的四层验证
1. 为什么RESTful API测试不是“把URL填进去点一下”就能完事?很多人第一次接触接口测试,看到Postman里输入一个GET请求、点下Send,返回200和一串JSON,就以为“测完了”。我带过三届测试新人,几乎每个人都踩过这个坑&a…...
