背景:
在做2.0核心接口测试的时候,针对一个接口,如:客户信息查询 在测试数据的excel中假如填入了三行数据,如何根据
excel中有多少行的数据去动态的定义多少个test函数。
解决方案:
1.由于python的unittest中默认设置是:测试类中的函数,以test开头的会被执行,其他的不被执行,所以先定义一个测试函数,注意取名不能以test开头
比如上图,只有my_2700这么一个函数作为测试函数,这个传入的x是指作为测试数据的EXCEL中的某一行(如传入的是3,就是针对测试数据excel中的第三行,依次读取第三行中的数据,然后发送请求),然后根据下图,定义一个get_test函数,用来执行my_2700函数,最后的关键在于 __test_demo()函数
setattr第一个参数传入这个类名,第二个参数可以用来重命名这个函数,第三个参数就是来实例化的函数,这里的i的值为测试数据excel的行数,然后每一行生成一个test打头的函数名,这样子就完成了本篇文章一开头的需求,实现了根据excel的数据量,动态定义用来执行unittest的的函数。
关于setattr不懂的可以自己百度熟悉。