自动生成测试用例

之前带领小组其他成员完成了第一阶段的自动化测试,包括框架(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()来生成。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。