pytest 读取yml文件测试数据

yml文件模版:

place_parent_order: &place_parent_order
  endpoint: /api/algo/order/place-parent-order
  method: POST
stop_parent_order: &stop_parent_order
  endpoint: /api/algo/order/stop-parent-order
  method: POST

test_place_parent_order:
  - testname: algo下单-条件twap下单-买
    tag: P0
    <<: *place_parent_order
    data: {}
    expect:
      code: 200
    after:
      <<: *stop_parent_order
      data: {"parentOrderId":129}
      expect:
        code: 200

测试入口读取文件:

import pytest
import asyncio
from utils.data_manager import test_data
from utils.am_common import http_send,verify_code
import jmespath

       

class TestTradeScenario:

    filedata = test_data.load_yml("am/trade.yml")

    @pytest.mark.asyncio
    @pytest.mark.parametrize("case",filedata.get("test_trade_order_scenario"))
    async def test_trade_order_scenario(self,case,client):
        """测试下单-挂单"""
        # step1
        response1 = await http_send(client,case["step1"])
        verify_code(response1,case["step1"])
        # step2
        await asyncio.sleep(1)
        response2 = await http_send(client,case["step2"])
        verify_code(response2,case["step2"])
        # 校验订单列表中有下单的订单号
        orderIds = jmespath.search('data.list[*].orderId', response2)
        assert  response1["data"] in orderIds

 

posted on 2025-03-27 13:54  老吃鸡  阅读(4)  评论(0)    收藏  举报

导航