pytest-asyncio:协程异步测试案例

简介:pytest-asyncio是一个pytest插件。它便于测试使用异步库的代码。具体来说,pytest-asyncio提供了对作为测试函数的协同程序的支持。这允许用户在测试中等待代码。

历史攻略:

asyncio并发访问websocket

Python:协程 - 快速创建三步骤

Python:获取协程返回值的四种方式

Python:多进程,多线程,协程基础案例

Python:aiomultiprocess实现协程与多进程的强强联合

安装:

pip install pytest-asyncio

使用案例:aysncio_demo.py

-- coding: utf-8 --

time: 2024/4/5 12:06

file: asyncio_demo.py

公众号: 玩转测试开发

import asyncio
import datetime

async def do_somethings(user):
# 1、定义协程函数
print(f"{user} is do_somethings. the time is {datetime.datetime.now()}“)
await asyncio.sleep(0.1)
return user + " is finish do_somethings.”

async def do_another(user):
print(f"{user} is do_another. the time is {datetime.datetime.now()}“)
await asyncio.sleep(0.2)
return user + " is finish do_another.”

async def do_others(user):
print(f"{user} is do_others. the time is {datetime.datetime.now()}“)
return user + " is finish do_others.”

if name == ‘main’:
# 3、加入事件循环。
tasks = []
for i in range(3):
tasks.append(do_somethings(“tom”))
tasks.append(do_another(“ken”))
tasks.append(do_others(“lily”))

asyncio.run(asyncio.wait(tasks))

test_demo.py

-- coding: utf-8 --

time: 2024/3/31 10:34

file: test_demo.py

公众号: 玩转测试开发

import sys
import pytest
from lib.asyncio_demo import do_somethings, do_another, do_others
from logger import log

@pytest.mark.asyncio
async def test_do_somethings():
user = “tom”
res = await do_somethings(user)
log.info(f"{res}“)
pytest.assume(user + " is finish do_somethings.” in res)

@pytest.mark.asyncio
async def test_do_another():
user = “ken”
res = await do_another(user)
log.info(f"{res}“)
pytest.assume(user + " is finish do_another.” in res)

@pytest.mark.asyncio
async def test_do_others():
user = “lily”
res = await do_others(user)
log.info(f"{res}")

# 此次故意放一个错误试试。
pytest.assume(user + " is finish do_others." not in res)

运行结果:

图片

图片

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值