本申请涉及计算机,具体涉及一种modbusrtu协议的测试用例的生成方法、装置及计算机设备。
背景技术:
1、modbusrtu协议是modbus协议的一种变体,是modbus协议的一种实现方式。其中,rtu(remote terminal unit)为远程终端单元。modbusrtu协议定义了在串行通信中使用二进制格式进行数据传输的规范。modbusrtu协议常用于485总线中。在通讯设备的通信过程中,因受到总线干扰,可能会出现异常数据帧或干扰数据帧。处于可靠性的要求,通讯设备接收到异常数据帧时,不对该数据帧进行响应;而接收到干扰数据帧时,应当正常响应。为了完成该可靠性要求,需要穷举通讯设备基于modbusrtu协议的正常数据帧和异常数据帧。通常,对于正常数据帧和异常数据帧的穷举需要通过测试人员手工操作,这样耗费的时间较长,人力成本较高,且难以保证覆盖性。
技术实现思路
1、本申请的目的是提供一种modbusrtu协议的测试用例的生成方法、装置及计算机设备,用以解决modbusrtu协议的通信检测中,通讯设备的测试用例的精度较低的问题。
2、为了实现上述目的,本申请第一方面提供modbusrtu协议的测试用例的生成方法,该方法包括:
3、获取设定的第一数据帧,第一数据帧包括多个字段;
4、根据每个字段的结果类型生成每个字段对应的映射组集合,映射组集合包括多个映射组,每个映射组对应一个结果类型,映射组包括结果类型与多个字段数据的映射关系;
5、选取每个字段的任一映射组中的字段数据进行组合,得到组合字段;
6、对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例。
7、在本申请实施例中,结果类型包括第一类型和第二类型,根据每个字段的结果类型生成每个字段对应的映射组集合,包括:
8、针对每个字段,获取字段的设定字段条件;
9、将满足设定字段条件的字段数据确定为第一类型对应的第一字段数据,并将不满足设定字段条件的字段数据确定为第二类型对应的第二字段数据;
10、根据第一类型与第一字段数据的映射关系,建立第一映射组;
11、根据第二类型与第二字段数据的映射关系,建立第二映射组;
12、基于第一映射组和第二映射组建立字段的映射组集合。
13、在本申请实施例中,选取每个字段的任一映射组中的字段数据进行组合,得到组合字段,包括:
14、选取每个字段的任一映射组中的第一字段数据或第二字段数据进行迭代组合,直至满足设定迭代条件;
15、若组合字段的每个字段都为第一字段数据,则将组合字段确定为第一组合字段;
16、若组合字段中的至少一个字段为所述第二字段数据,则将组合字段确定为第二组合字段。
17、在本申请实施例中,对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,包括:
18、依次将各第一组合字段发送到通讯设备进行通信测试;
19、若在设定时间内接收到通讯设备针对第一组合字段的反馈数据帧,则将第一组合字段确定为测试用例。
20、在本申请实施例中,对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,还包括:
21、若未在设定时间内接收到反馈数据帧,判断第一组合字段是否通过通信验证;
22、若第一组合字段通过通信验证,对第一组合字段进行标记;
23、若第一组合字段未通过通信验证,停止第一组合字段的测试。
24、在本申请实施例中,对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,包括:
25、依次将各第二组合字段发送到通讯设备进行通信测试;
26、若在设定时间内未接收到通讯设备针对第二组合字段的反馈数据帧,对第二组合字段进行异常检测;
27、若第二组合字段通过异常检测,判断第二组合字段是否通过通信验证;
28、若第二组合字段通过通信验证,则将第二组合字段确定为测试用例。
29、在本申请实施例中,对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,还包括:
30、若在设定时间内接收到反馈数据帧,判断第二组合字段是否通过通信验证;
31、若第二组合字段通过通信验证,则对第二组合字段进行标记;
32、若第二组合字段未通过通信验证,停止第二组合字段的测试。
33、在本申请实施例中,依次对第二组合字段进行通信测试的步骤之前,还包括:
34、判断第二组合字段是否符合设定通信协议;
35、若第二组合字段符合设定通信协议,则剔除第二组合字段。
36、本申请第二方面提供一种modbusrtu协议的测试用例的生成装置,包括:
37、生成模块,用于获取设定的第一数据帧,第一数据帧包括多个字段;
38、映射模块,用于根据每个字段的结果类型生成每个字段对应的映射组集合,映射组集合包括多个映射组,每个映射组对应一个结果类型,映射组包括结果类型与多个字段数据的映射关系;
39、组合模块,用于选取每个字段的任一映射组中的字段数据进行组合,得到组合字段;
40、测试模块,用于对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例。
41、本申请第三方面提供一种计算机设备,包括:
42、存储器,被配置成存储指令;以及
43、处理器,被配置成从存储器调用指令以及在执行指令时能够实现上述的modbusrtu协议的测试用例的生成方法。
44、本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得处理器被配置成执行上述的modbusrtu协议的测试用例的生成方法。
45、本申请首先获取设定的第一数据帧,该第一数据帧包括多个字段。然后,根据每个字段的结果类型生成每个字段对应的映射组集合。在映射组结合中,每个映射组对应一个结果类型,映射组包括结果类型与多个字段数据的映射关系。接着,选取每个字段的任一映射组中的字段数据进行组合,得到组合字段。最后,对组合字段进行测试,并将满足测试条件的组合字段确定为测试用例。本申请通过选取第一数据帧中每个字段的任一映射组中的字段数据,然后对每个字段选取的字段数据进行组合,得到组合字段,基于对该组合字段进行测试,从而得到满足测试条件的测试用例。这样,基于字段的结果类型生成测试用例,可以使得生成的modbusrtu协议的测试用例更加全面,且精度更高。
46、本申请的其它特征和优点将在随后的具体实施方式部分予以详细说明。
1.一种modbusrtu协议的测试用例的生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的生成方法,其特征在于,所述结果类型包括第一类型和第二类型,所述根据每个所述字段的结果类型生成每个所述字段对应的映射组集合,包括:
3.根据权利要求2所述的生成方法,其特征在于,所述选取每个所述字段的任一映射组中的字段数据进行组合,得到组合字段,包括:
4.根据权利要求3所述的生成方法,其特征在于,所述对所述组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,包括:
5.根据权利要求4所述的生成方法,其特征在于,所述对所述组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,还包括:
6.根据权利要求3所述的生成方法,其特征在于,所述对所述组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,包括:
7.根据权利要求6所述的生成方法,其特征在于,所述对所述组合字段进行测试,并将满足测试条件的组合字段确定为测试用例,还包括:
8.根据权利要求6所述的生成方法,其特征在于,所述依次对所述第二组合字段进行通信测试的步骤之前,还包括:
9.一种modbusrtu协议的测试用例的生成装置,其特征在于,包括:
10.一种计算机设备,其特征在于,包括:
11.一种机器可读存储介质,其特征在于,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求1至8中任一项所述的modbusrtu协议的测试用例的生成方法。
