双11活动
学院介绍

知识点
虚拟环境
pytest介绍
fixture介绍
插件体系
常用插件
- pytest-ordering
- pytest-xdist
- pytest-allure
- pytest-html
接口测试框架
https://requests.readthedocs.io/en/master/
import requests
def test_get():
r=requests.get('https://ceshiren.com/search.json?q=%E5%A4%B4%E6%9D%A1')
print(r.status_code)
assert r.status_code == 200
assert '今日头条' in r.text
企业微信接口测试实战
企业微信基本参数
https://work.weixin.qq.com/api/doc/90000/90135/92117
{
'corpid': 'wwd6da61649bd66fea',
'corpsecret': 'heLiPlmyblHRiKAgGWZky7MMvyld3d3QMUl5ra7NBZU'
}
常见问题
- 需要依赖token
- 测试用例之间需要依赖
- 数据需要传递与复用
- 数据的清理
演练代码
https://github.com/ceshiren/HogwartsHttp1104
作业
fork本项目代码,完善测试用例中的todo部分,并提交代码并把自己的github作业地址贴到pytest测试框架练习课程贴的回复里,答案优秀的同学可获得礼品奖励。
关键的todo
- 测试用例之间完全解除依赖
- 保证测试数据可以重复运行
- 断言逻辑更完备
- 出一份带有所有接口响应的allure2报告
参考资料
https://docs.pytest.org/en/stable/index.html
https://docs.pytest.org/en/stable/contents.html
https://github.com/ftobia/pytest-ordering
https://docs.qameta.io/allure/
我想使用@fixture来做参数化,@fixture装饰的函数传入文件名后,函数返回一个字典
@fixture
def setting(filename)
return param
def test_case(setting(filename))
#执行测试
pip install allure-pytest
pytest --alluredir=allure-results tests/
allure serve allure-results/
你这样用不太合适。参考官方的这个例子
返回一个处理过程函数,而不是具体的返回值。比如你的读取文件并返回内容的过程,就可以封装到类似于_make_customer_record的内部函数里。你传参的时候,就可以直接传入fixture和参数化的文件名即可。
@pytest.fixture
def make_customer_record():
def _make_customer_record(name):
return {"name": name, "orders": []}
return _make_customer_record
def test_customer_records(make_customer_record):
customer_1 = make_customer_record("Lisa")
customer_2 = make_customer_record("Mike")
customer_3 = make_customer_record("Meredith")
或者这种模式。使用两个fixture中转
import pytest
class App:
def __init__(self, smtp_connection):
self.smtp_connection = smtp_connection
@pytest.fixture(scope="module")
def app(smtp_connection):
return App(smtp_connection)
def test_smtp_connection_exists(app):
assert app.smtp_connection
你的情况我猜测是要做一个数据驱动的框架,其实连fixture都用不到的。直接参数化就可以解决了。
bule
(blue)
7
老师,我装了pytest-allure的包,也生成了allure的report文件夹,但是在命令行执行【allure serve allure-results/】时提示:【bash: allure: command not found】,请问我这个情况是哪里有问题呀?
bule
(blue)
8
@seveniruby 老师,pretty函数里的那句可以发一下吗?刚刚视频里没跟上,谢谢~
你要下载allure安装, 然后在Windows环境变量path添加路径, 比如C:\allure-2.13.6\bin,
1 个赞
bule
(blue)
10
感谢指点,是这个问题,电脑安装allure后可以成功生成报告,感谢