课前准备
- 看完本章节所有课程内容
- 完成作业,优先回答和作业相关的问题
- 相关问题在评论区回复
上课内容
知识点梳理
链接: 百度网盘 请输入提取码 提取码: 6nnx
本章演示代码
https://gitlab.stuq.ceshiren.com/lg/lg9/hogwartslg9
课后调查表
作业
- 课后作业
- 1、补全计算器(加法 除法)的测试用例
- 2、使用参数化完成测试用例的自动生成
- 3、在调用测试方法之前打印【开始计算】,在调用测试方法之后打印【计算结束】
- 注意:
- 使用等价类,边界值,因果图等设计测试用例
- 测试用例中添加断言,验证结果
- 灵活使用 setup(), teardown() , setup_class(), teardown_class()
设计测试用例
加法
除法
优秀作业
点评: 知识点应用比较灵活,用例设计 考虑的比较全面
https://gitee.com/sailyang00/ceshiren/blob/master/class2/moudle2/ceshiren_homework_moudle2/
点评: 想法比较多,添加了日志,自动生成ids属性,用例考虑的也比较全面,需要注意的是目录结构需要划分清晰一些。
1、计算器测试类中,把加法、除法计算都写在一起,获取yaml文件时,
如下:
with open("./datas/test_calculator.yml") as f:
# 实例化,获取yaml文件中add数据
datas_add = yaml.safe_load(f)[‘add’]
# 获取yaml文件中add:datas数据
add_datas = datas_add[‘datas’]
# 打印add:datas数据
print(add_datas)
# 获取yaml文件中add:myid数据
add_myid = datas_add[‘myid’]
# 打印add:myid数据
print(add_myid)
# 实例化,获取yaml文件中div数据
datas_div = yaml.safe_load(f)[‘div’]
# 获取yaml文件中div:datas数据
div_datas = datas_div[‘datas’]
# 打印div:datas数据
print(div_datas)
# 获取yaml文件中div:myid数据
div_myid = datas_div[‘myid’]
# 打印div:myid数据
print(div_myid)
运行报错:
2、计算器计算除法时,除数为0,怎样处理可以使用例通过
@pytest.mark.parametrize()中为什么访问不到conftest文件中创建的fixtrue
同学最好把代码上传到github上,然后贴一下代码地址哈!
可以试着自己点进源码看一下(ctrl + 鼠标左键),参数化的源码如下:
class _ParametrizeMarkDecorator(MarkDecorator):
def __call__( # type: ignore[override]
self,
argnames: Union[str, List[str], Tuple[str, ...]],
argvalues: Iterable[Union[ParameterSet, Sequence[object], object]],
*,
indirect: Union[bool, Sequence[str]] = ...,
ids: Optional[
Union[
Iterable[Union[None, str, float, int, bool]],
Callable[[Any], Optional[object]],
]
] = ...,
scope: Optional[_Scope] = ...,
) -> MarkDecorator:
...
可以看到里面需要五个参数,里面没有允许直接添加 fixture ,但里面有一个参数 indirect,这个值设置为True,可以将argnames 的值解析为函数来执行。也就是说indirect=True 时,可以argnames 中的参数为fixture。
我也遇到了这个问题,yaml中两个字典套字典就不可以,只有加法的数据的时候就可以
按照课上老师讲的读取方式,老师直播课上讲作业的时候 就是两个字典嵌套的格式 。
allure生成的html的文件,在chrom打开会404,可以用Microsoft Edge浏览器正常打开,有什么方法可以解决么?