首页 > 编程语言 >python接口自动化系列(04):读取数据文件并注入到测试方法

python接口自动化系列(04):读取数据文件并注入到测试方法

时间:2024-03-03 20:56:51浏览次数:20  
标签:username product 读取数据 04 用例 python 成功 yaml import

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/18033074

实现目标

把用例yaml文件中数据读取出来,依次把每条用例数据传给测试方法。

 

安装模块

安装操作yaml的模块pyyaml

pip install pyyaml

 

测试数据文件放data目录

case.yaml

 

内容:

---
- epic: 全栈测试笔记
  feature: user
  story: register
  title: 用户注册成功
  description: 这是用户注册成功的用例
  severity: blocker
  request:
    url: /qzcsbj/user/register
    method: post
    headers: {'Content-Type':'application/json'}
    cookies:
    files:
    params: {"username":"#{username}","password":"#{password_correct}","realName":"#{username}","sex":"1","birthday":"1990-06-16","phone":"13500000006","utype":"1","adduser":"#{username}"}
  initSql: ["delete from user where username = '#{username}';"]
  globalVariables:
  assertFields: $.msg=注册成功;
 
- epic: 全栈测试笔记
  feature: user
  story: login
  title: 用户登录成功
  description: 这是用户登录成功的用例
  severity: blocker
  request:
    url: /qzcsbj/user/login
    method: post
    headers: {'Content-Type':'application/json'}
    cookies:
    files:
    params: {"username":"#{username}", "password":"#{password_correct}"}
  initSql:
  globalVariables: token=$.data.token;
  assertFields: $.msg=登录成功;
 
- epic: 全栈测试笔记
  feature: product
  story: add
  title: 添加商品成功
  description: 这是添加商品成功的用例
  severity: blocker
  request:
    url: /qzcsbj/product/add
    method: post
    headers: {'Content-Type':'application/json'}
    cookies:
    files:
    params: {"product":{"price":9999,"productName":"#{productname}"},"token":"${token}"}
  initSql: ["delete from product where product_name = '#{productname}';"]
  globalVariables:
  assertFields: $.msg=添加商品成功;
 
- epic: 全栈测试笔记
  feature: product
  story: findByName
  title: 查询商品成功
  description: 这是查询商品成功的用例
  severity: normal
  request:
    url: /qzcsbj/product/findByName
    method: get
    headers: {'Content-Type':'application/json'}
    cookies:
    files:
    params: {"name":"#{productname}"}
  initSql:
  globalVariables:
  assertFields: $.msg=查询商品成功;
 
- epic: 全栈测试笔记
  feature: product
  story: findByName
  title: 查询商品失败
  description: 这是查询商品失败的用例
  severity: normal
  request:
    url: /qzcsbj/product/findByName
    method: get
    headers: {'Content-Type':'application/json'}
    cookies:
    files:
    params: {"name":"#{productname}"}
  initSql:
  globalVariables:
  assertFields: $.msg=查询商品成功啦;

 

项目配置文件

conf下创建settings.py,定义测试用例数据文件路径

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: 韧
# @wx: ren168632201
# @Blog: https://www.cnblogs.com/uncleyong/

import os
import logging
logger = logging.getLogger(__name__)

# 获取项目路径
BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 定义测试用例数据文件路径
CASE_DATA_PATH = os.path.join(BASE_PATH,'data/case.yaml')

 

创建工具类

tools下创建yaml_tool.py,读取yaml文件中的数据

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: 韧
# @wx: ren168632201
# @Blog: https://www.cnblogs.com/uncleyong/

import yaml

# 读取yaml中用例/变量数据
def read_data_from_yaml(file_path):
    f = open(file_path, "r", encoding="utf-8")
    res = yaml.load(f, yaml.FullLoader)
    return res

  

修改测试类

test_cases.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: 韧
# @wx: ren168632201
# @Blog: https://www.cnblogs.com/uncleyong/

import pytest
import logging
logger = logging.getLogger(__name__)
from conf.settings import CASE_DATA_PATH
from utils.yaml_tool import read_data_from_yaml

class TestCase:
    @pytest.mark.parametrize("casedata", read_data_from_yaml(CASE_DATA_PATH))
    def test_case(self, casedata):
        logger.info(f"---当前测试用例数据是:{casedata}")
        assert 1 == 1

 

运行结果

可以看到,测试用例数据已经读取并成功传给测试方法。

 

标签:username,product,读取数据,04,用例,python,成功,yaml,import
From: https://www.cnblogs.com/uncleyong/p/18033026

相关文章

  • python接口自动化系列(05):获取常用变量
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标获取常用变量,方便后面解析初始化sql或者请求参数的时候将常用变量占位符替换为实际值。 添加常用变量数据文件data目录下创建variable.yaml 内容:---'#{username}':tester'#{password_......
  • python接口自动化系列(02):yaml测试数据文件设计
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074实现目标对测试数据进行设计,数据设计决定了后续读取数据的代码该如何实现。 关于被测试接口配套练习环境(含相关接口):https://www.cnblogs.com/uncleyong/p/17165143.html 常用数据用例数据频繁使用......
  • python接口自动化系列(01):自动化测试框架设计
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074先看下最终效果(gif) 报告总览 前言之前分享了java自动化(详见:https://www.cnblogs.com/uncleyong/p/15867903.html),部分小伙伴建议分享一个python版本,安排!!!当然,通过测试招聘要求大家也可以发现,目前......
  • python的安装与环境配置
    1、首先再python的官网上面找到自己系统的安装包并下载,下载成功后打开安装包。2、点击以后选择英文Customizeinstallation(这是自定义安装的路径)建议选择自定义安装,方便后续程序的管理,installNow是安装在C盘。并且选择下面的Addpython3.8topath(环境变量)3、保持默认选......
  • python中的多线程及锁介绍
    线程CPU执行调度的最小单位。不能独立存在,依赖进程存在。一个进程至少有一个线程,叫做主线程,另外还有内核线程、用户线程。线程之间共享内存。线程之间的通信效率远高于进程间通信效率,线程之间切换代价也比进程小很多。适用场景Python的多线程适用于IO密集型任务。多任务可以......
  • centos7 安装python3.8
    #cd/usr/local#yum-ygroupinstall"Developmenttools"#yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel#yuminstalllibffi-devel-ywgethttps:/......
  • python 与jupyter notebook 安装和环境配置
    一、pyhon环境安装下载Python:首先,从Python官方网站(https://www.python.org/downloads/)Download点击下载Python的安装程序运行安装程序:下载完成后,运行Python的安装程序。在安装过程中,确保勾选“AddPythontoPATH”选项,这样可以方便在命令行中使用Python自定义目录......
  • P1040 [NOIP2003 提高组] 加分二叉树
    原题链接题解计算分数是搜索存储前缀注意细节code#include<bits/stdc++.h>usingnamespacestd;#definelllonglongllsco[35][35]={0};stringpre[35][35];lla[35]={0};queue<ll>q;inlinevoidread(ll&x){x=0;llflag=1;charc=getch......
  • python邮件发送代码参考
    1.python邮件发送参考代码#!/usr/bin/python#-*-coding:UTF-8-*-importsmtplibfromemail.mime.imageimportMIMEImagefromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.headerimportHeader#第三方SMTP服务mail_host......
  • python环境安装与配置 Jupyter Notebook的环境配置
    浏览器上搜索python官网进入官网,点击downloads(下载的意思)在里面自行选择在这里选择需要的版本,点击即可选择自定义安装,勾选添加环境变量下一步全选,第三步修改安装路径,怎么方便怎么来安装成功后,点击键盘Windows+R键进入运行输入cmd进入后输入python可以查看python版本,......