大家好,才是真的好。
无论是演示产品,还是测试功能,我们的应用程序或产品开发完成后,总需要很多数据,Notes应用也不例外。
在过去,一般Notes开发人员在开发同时也是测试人员,自己打开表单填入数据,进行运行,再查看界面或代码逻辑是否存在问题,来进行修改。
不过,这也太浪费时间了。
为此,今天我们介绍一款可在Notes应用开发中能使用到的神器:Faker。
Faker是一款工具,支持多种语言,例如Python、Java、Ruby、PHP、NodeJS 等。它可以自动生成从身份证到姓名再到地址、动物、书籍、头像、职位等数据,基本上覆盖了我们生活中的方方页面,同时也支持各种语言,例如中文、日语、德语等。
你都已经看到这里了,肯定是知道我们的Notes应用程序支持Java对吧?
本篇就讲述在我们的Notes Todo应用自动批量生成多条测试数据。你可以在公众号对话框中回复“fakerdata”来获取例库,然后按照下面的指导来一起动手实操。
这个todo待办应用里的字段很少,只有主题、开始日期、结束日期、优先级、状态和备注等,如下图
这些字段虽然简单,但之间逻辑也有些要求,例如结束时间不能早于开始时间,优先级和状态都是限定的关键字等。
现在,用Domino Designer打开Todo应用,先建一个Java代理,名称叫做“自动批量生成测试数据”,或者你自己定义的名字。然后导入javafaker的jar和关联jar包文件(jar引用方式有很多,例如也可以放到Notes或Domino对应的文件目录下引用,本例为简单起见,直接导入到代理中,这些包包括在我们提供的例库中),如下图:
在java代理程序中,主要引用com.github.javafaker.Faker包,如下图:
本例假设自动生成1000条数据,数据越多,越能体现该工具强大。
代码里面设置几个常量名,例如表单名FROM为Todo,MAX_RECORDS为1000——即最多可生成1000条数据,如下图:
在try语句块中,是主要功能实现部分。
首先使用Faker faker = new Faker()实例化一个新的Faker对象,请注意,可使用Faker faker = new Faker(new Locale(“zh-CN”))实例化的同时,指定采用中文,本例采用默认的英文。
主题字段的话,我使用了faker.date().title(),随机一本书名。然后通过doc.replaceItemValue(fieldname,value)来进行文档字段创建。
还有比较重要的是时间的处理。要注意,Domino Java中我们需要使用DateTime来创建时间日期对象dtnow,通过dtnow.setNow()设置为现在,而后使用dtnow.adjustDay(n)来调整现在日期之后的n天,有了这个基础,我们可以利用faker.date().between方法来在指定日期段中随机生成一个日期,这样实现结束时间晚于开始时间,提高测试数据的逻辑真实性。
——我似乎在讲代码,这些Domino Designer帮助中都有,请自行查看。
来看看最后的结果,在操作菜单中运行下该代理程序。
得到指定数量的测试数据,如下图:
对上述代码进行简单修改,就可根据你自己的Notes应用来批量产生测试数据。
今天我们就讲到这里。
更多精彩内容,请关注微信公众号:协作者