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
鸡肉是我的最爱!