我们在做测试的时候往往需要用到数据的多种组合,产生多个新数据来生成更多的测试用例,达到更全面的测试效果的目的。
实现多种数据组合的方式很多,但是怎么样才是最简单的呢,我们先看接下来的例子:
假设我有三个不同的列表:
col1 = ['2006-03-28','2006-04-05','2006-04-06'] col2 = ['IBM', 'MSFT', 'IBM'] col3 = [1000, 1000, 500]
将这些列表合并到另一个列表中的最有效方法是:
col = [('2006-03-28', 'IBM', 1000), ('2006-04-05', 'MSFT', 1000), ('2006-04-06', 'IBM', 500)]
要实现上述按行组合的方式,代码怎么写?
java代码:
import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class testArr { public static void main(String[] args) { String[] arr1 = new String[]{"IBM","MS","bbb"}; Integer[] arr2 = new Integer[]{1000,2000,3000}; String[] arr3 = new String[]{"2006-03-28","2006-03-29","2007-01-01"}; Object[] objArr = new Object[arr1.length+arr2.length+arr3.length]; System.arraycopy(arr1, 0, objArr, 0, arr1.length); System.arraycopy(arr2, 0, objArr,arr1.length , arr2.length); System.arraycopy(arr3, 0, objArr, arr1.length+arr2.length, arr3.length); System.out.println(Arrays.asList(objArr)); } }
python的写法:
>>> col1 = ['2006-03-28','2006-04-05','2006-04-06'] >>> col2 = ['IBM', 'MSFT', 'IBM'] >>> col3 = [1000, 1000, 500] >>> zip(col1, col2, col3) [('2006-03-28', 'IBM', 1000), ('2006-04-05', 'MSFT', 1000), ('2006-04-06', 'IBM', 500)]
如果列已经在一个列表中,则可以使用zip(*cols),代码如下:
>> col1 = ['2006-03-28','2006-04-05','2006-04-06'] >>> col2 = ['IBM', 'MSFT', 'IBM'] >>> col3 = [1000, 1000, 500] >>> col = list(zip(col1 ,col2 ,col3 )) >>> print(str(col)) [('2006-03-28', 'IBM', 1000), ('2006-04-05', 'MSFT', 1000), ('2006-04-06', 'IBM', 500)]
仅zip()语法本身适用于Python2.x。在Python3.x中,使用上面的代码将列表合并为按行(或作为电子表格列)
最后当然是龙测的实现方式:无需写代码,选择配置即可轻松实现
用例直接选择配置——数据组合方式选择“按行组合”,点击“保存”即可
让我们看一下龙测工具自动生成的代码的实现结果
我们可以看到无需写代码,就轻松实现了按行组合,生成多组测试数据,每组测试数据可以运行生成一个测试用例,当你的数据量很大的时候,我们同样只需选择配置完成数据造数,可以最少的时间自动生成最多的数据和测试用例。
快来龙测get这个新技能吧。
关于我们
龙测科技——一站式通用自动化软件测试TestOps平台
画流程图、积木图自动生成测试代码的自动化测试专家
测试体验官网: