自动化测试平台化[v1.0.0][事件描述与装载]

在整个事件驱动的设计中,事件是可以在执行的过程中被装载的,从而满足我们的需要的轮询机制来判断事件是否有变化,保存事件描述信息可以使用JSON文件或者数据,如下代码所示

{
    "events": [
        {
            "package": "product.event.demo_event",
            "name": "DemoEvent1",
            "args": {"devices": ["ap1"]},
            "background": false,
            "start_time": "2020-3-13 18:59:00",
            "loop": 1
        },
        {
            "package": "product.event.demo_event",
            "name": "DemoEvent2",
            "args": {"devices": ["sta1"]},
            "background": true,
            "start_time": "2020-3-13 18:59:00",
            "interval": 60
        }
    ]
}

如此格式的文件作为一个基础的输入,在测试执行开始的时候被保存到一个新的文件中,作为执行期间轮询的文件,并为每个事件加上一个is_loaded的Flag标志位,已经装载的事件的标志位为True,测试执行过程中,测试人员就可以通过修改这个文件来让时间产生变化,如果is_loaded为False,轮询代码发现标志位为False的事件后,就将事件装载进调度器


如果使用数据库,则需要创建两张表,一张表用于存放预设的数据表,另一张表作为执行时候的表,在执行开始的时候生成一个uuid,将预设表中的事件装载进执行表,并且带上uuid,如此不同的测试用例就可以轮询其相应的uuid的事件,同时还可以把测试结果写入数据表中


事件描述信息中的参数和测试环境有关,一般在使用事件驱动的时候,已经提前知道了目标环境,因此参数中与资源相关的部分会使用资源名,这样在测试用例开始执行的时候先获取所有的测试资源,再根据事件描述信息中的参数将具体的资源实例保存到时间的arguments属性中即可

猜你喜欢

转载自blog.csdn.net/dawei_yang000000/article/details/107728209
今日推荐