首页 > 其他分享 >pytest+yaml测试用例

pytest+yaml测试用例

时间:2023-08-21 09:23:51浏览次数:27  
标签:url pytest yaml 测试用例 user path ## data

# 一、yaml格式
#
# yaml是一种数据类型,可以和json之间灵活的切换,支持注释、换行、字符串等。可以用于配置文件或编写测试用例。
#
# 数据结构:一般是键值对的方式出现。注意编写时值前面必须有空格,键:(空格)值。
#
# 如果是数组,以-(空格) 开头来表示
#
# 以user.yaml为例,这里编写两个用例,每个用例中包含有url、method、data、msg等信息。

-
url: **/login
method: POST
data:
userName: **
password: **
msg:
查询成功!
-
url: **/login
method: POST
data:
userName: **
password: **
msg:
帐号或密码错误,请重新输入。

# 二、定义读取yaml测试用例的方法
#
# 在上篇文章《接口自动化测试框架封装入门》的基础上,对yaml_util.py文件进行修改,把原来的读取指定文件中的key值改为读取yaml内容。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time : 2023/5/28 14:29
# @Author : 凌雪
# @File : yaml_util.py
# @Software: PyCharm
# 功能说明:工具类,保存中间变量,方便接口关联封装


import yaml


def read_yaml(path):
"""
读取yaml文件
:param path: 要读取的yaml文件路径
:return: 返回yaml内容
"""
with open(path, encoding="utf-8") as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
# return value[key]
return value

def write_yaml(path, data):
"""
写入yaml文件
:param data:
:return:
"""
with open(path, encoding="utf-8", mode='a') as f:
yaml.dump(data, stream=f, allow_unicode=True)

def clear_yaml(path):
"""
清空yaml文件,一般在整个项目执行之前,清空
:return:
"""
with open(path, encoding="utf-8", mode="w") as f:
f.truncate()

# 三、把测试的服务器地址作为配置文件
#
# 测试的服务器,正常来讲都是比较固定的,但测试环境和正式环境是不同的,因此我们将服务器地址抽出来作为配置文件,方便切换不同的测试环境。这里将配置文件放在config.yaml文件中。

Host:
baseurl: http://*****/
trainurl: http://****/

# 四、执行测试的用例文件修改
#
# 这里结合@pytest.mark.parametrize方法实现用例数据驱动。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time : 2023/5/28 15:33
# @Author : 凌雪
# @File : test_login.py
# @Software: PyCharm


import pytest
from common.send_request import Send_Request
from common.yaml_util import *

class TestLogin:

@pytest.mark.parametrize('user', read_yaml('../datas/user.yaml'))
def test_login(self, user):
# url = "http://**"
baseurl = read_yaml('../config.yaml')['Host']['baseurl']
# print("配置文件中的host是 %s" % baseurl)
url = baseurl + user['url']
# data = {
# "userName": "***",
# "password": "****"
# }
print(user['msg'])
# res = Send_Request().post(url=url, data=user['data']).json()
res = Send_Request().all_send_request(method=user['method'], url=url, data=user['data']).json()
# token = res["jwt"]
# # write_yaml({"token": token}) #将token写入yaml文件
# print(token)
msg = res['msg']
assert user['msg'] == msg



if __name__ == "__main__":
pytest.main(["-s"]) #加s,可以在控制台输出print信息

标签:url,pytest,yaml,测试用例,user,path,##,data
From: https://www.cnblogs.com/Raul2018/p/17645115.html

相关文章

  • 商城的TPS与并发用户数是如何换算的?请编写商城的性能测试用例?
    商城的TPS与并发用户数的换算关系可以通过以下公式计算:TPS=并发用户数/平均事务响应时间其中,平均事务响应时间是指系统处理一个事务所需的平均时间。下面是商城性能测试的一些用例示例:用户登录:目标:测试用户登录功能的性能和稳定性。测试步骤:模拟多个用户同时进行登录......
  • yaml文件示例
     apiVersion:v1kind:Podmetadata:name:my-podspec:containers:-name:myhttpd#只要是包含子项的第一行都需要有”-“,且与上一行对齐image:httpdimagePullPolicy:IfNotPresentports:-containerPort:80-name:mynginx......
  • pytest + yaml 框架 -53.yaml 用例规范与全部关键字总结
    前言v1.4.4版本新增对yaml用例格式校验,不合法的用例格式不会被执行,避免出现用例格式不合法导致的报错。全部关键字总结config中可用关键字关键字可支持类型功能说明name可选str没什么用,仅描述当前yaml用例的名称base_url可选str,支持格式:http://、htt......
  • json和yaml语法转换
    yaml格式vim0224.yaml-"0224":老师:于超学生们:-黄彦:-年龄:23地址:深圳陈亮亮:-年龄:24地址:广州罗兴林:-年龄:24地址:贵州字典的形式:"key":"value",转化为json类型去看,{"key":value},大括号{}保存字典纯变......
  • open 一般的文件和yaml文件的区别
    一般的文件 读取的包含换行符 是数组格式#opendefget_yaml(file_path):withopen(file_path,encoding='utf-8')asfo:print(fo.readlines())if__name__=='__main__':get_yaml('../configs/evn.yaml')'''......
  • 解决Pycharm运行成功,但无法生成:pytest-html报告
    不生成报告的原因:用户习惯:使用者习惯于单独执行测试文件.py,调试测试用例;而编辑器为了方便用户执行测试用例,变调用pythontest来执行测试用例,这种情况下,执行的只是用例或者套件,不是整个文件,即main里面输出报告的语句没有执行,变不会生成测试报告;解决方法:如下图:1.全局执行;2.执......
  • 接口测试的测试用例该怎么写呢
    接口测试是软件测试中非常重要的一部分,因为接口的稳定性和可靠性对于整个系统的质量和用户体验都有很大的影响。在接口测试中,编写有效的测试用例是非常关键的一步。本文将介绍如何编写接口测试的测试用例,包括测试用例的设计和编写方法,并提供一些具体的测试用例示例和代码实现。一、......
  • 01-测试用例的基本知识
    测试用例 (TestCase)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。为了某个目标而编制的一组数据测试输入,执行步骤以及预期结果的集合,以便测试某个程序路径或某个满足特定需求的功能。测试用例的内容用例编号:唯一的号码;用例名称:要统一命名;......
  • SAP Fiori Elements 应用里的 ui5.yaml 文件详解试读版
    本教程第4篇文章,我们介绍了本地启动SAPFioriElements应用的三种模式。4.SAPFioriElements本地应用启动的三种模式辨析以默认方式即命令行yarnstart启动之后,项目文件夹里的ui5.yaml文件会默认被加载并解析。ui5.yaml这个文件,在本地开发FreestyleUI5时也会......
  • SAP Fiori Elements 应用里的 ui5-local.yaml
    SAPFioriElements是SAP的一种开发框架,用于快速构建SAPFiori应用程序。SAPFioriElements应用程序的一个重要方面是模拟服务器(mockserver),它允许在本地开发环境中模拟OData服务,以便在没有真实后端服务的情况下进行开发和测试。ui5-local.yaml文件用于配置本地开发环境......