自动生成测试用例

之前带领小组其他成员完成了第一阶段的自动化测试,包括框架(appium+python+unittest)搭建、编写基本用例,目前已经完成了,现在考虑下一阶段的目标,我的期望是减少重复代码,争取做到数据驱动,做到能够自行读取设定的用例和步骤,那么怎么实现呢?数据放哪里、用例怎么生成等等。

参考一些资料后,使用setattr可以实现自动生成用例的方法,那数据呢,就使用yaml文件吧。

具体实现如下:

一、创建的测试类:

测试类

该类为测试类,继承自unittest.TestCase,主要的功能即为启动/关闭app等,begin_execute()是一个重点功能,听过eval()内置函数来执行一个字符串表达式,并返回表达式的值,很好用。

那么eval()的入参从哪里来呢?

二、从yaml文件中读取操作步骤:

读取yaml文件内容

yaml文件的示例,内容为测试的操作步骤:

操作步骤

以上两步即可以完成一条测试用例,那么如何自动创建一个测试用例呢?

三、自动删除test开头的测试用例:

生成测试用例

这里直接命名yaml文件的名称为“test_xxxx.yaml”即可,这样通过setattr()可以在test_case测试类中生成一条“test_xxxx”的测试用例。

那么测试用例如何与执行的操作联系呢?那就是下面一步:

四、具体用例:

用例代码

这里将test_case.begin_execute()的内容返回给test_generator的setattr()。

最后,我们只要读取所有yaml文件即可,通过test_generator()来生成。

这两天学到了这个方法,可以大大减少一期的代码量,同时对于维护用例也有改进。

你可能感兴趣的:(自动生成测试用例)