如何修改pytesthtml源码来优化

有哪些白癜风医院 https://baijiahao.baidu.com/s?id=1680130549447447545&wfr=spider&for=pc

你这么非凡,必定只想把“柠檬班”置顶

绪论

众人好,我是柠檬班Python6期的学生小翟。

畴昔罕用unittest做接口主动化测试,后来想获得单个接口的响当令间,便采纳pytest单位测试框架。

即使取得的时候不太精确。

由于pytest测试汇报的时候是从一个用例发端到收场,个中包含了断言,因而现实时候比响当令间略长。

倘使从参考的角度看,这个时候即使不是很精确,但仍有价格。

Pytest与ddt辩论

倘使你想应用pytest,就不能应用ddt做数据启动了,不然运转时会抛出反常。

提醒

data不是pytest的一个fixture

这时能够应用pytest的参数化,即底下这类体例:

个别来讲,应用至多的是前两个参数,argnames和argvalues。

argnames:用逗号分开的字符串,示意一个或多个参数名或参数列表/元组。

argvalues:是一个列表,让前方的参数argnames挨次从中取值用于迭代

云云的话,咱们就处理了第一个题目。

即用pytest参数化来接替unittest的数据启动。

测试汇报中的用例名字不范例

迫在眉睫的点了运转,俄然发觉测试汇报中的用例名字很不幸,这是甚么鬼,为甚么会云云写?

云云的测试用例名字,第一眼让人感触很参差,由于根柢看不出是哪条接口的。

倘使能将测试用例中的case_id对应的值做为用例名字就对比完备了:

那时我的第一思绪是,先去看看测试汇报的元素。

这个用例名字的元素对应的标签的td。

对应的class属性值是"col-name"。

那能不能去pytest-html的源码中看看在哪一伙。

在其余场合没有找到,但在plugin.py中找到了,能够看到找到了一个,没错便是咱们想要的td标签。

那末尚有一个参数self.test_id是甚么?

斗胆的揣测一下,该当是td标签对应的文本值吧。

既然要改动td标签的文本值,此刻曾经揣测是self.test_id对应的值。

接下只要探求一下self.test_id是何如界说的,全部便瓜熟蒂落!

图1:

图:

图:

不过果真这么简略吗?

请看上图,全豹找到了4个self.test_id。

除了刚才咱们找的谁人,有个和report.nodeid相关。

有1个和extra_index和test_index相关,report.nodeid大概是report的一个属性。

此背面两个参数是crate_asset的两个形参,这些东西咱们能直接获得到吗?

看到这边,感触第一个思绪错了,起码是方位有题目!

想想畴昔,在做unittest的时候,ddt经过批改源码改动用例名字。

ddt批改时并不是去HTMLTestRunner中批改的。

同理,咱们猜度下,pytest要批改用例名字,


转载请注明:http://www.aierlanlan.com/rzdk/1022.html