说实话对整个系统都不是了解的很清楚,想要讲一下ssm和bigs的区别我都觉得有点分不清楚,可能就是两种不同的方式来爬取数据,到后面其实是有要做一个compare的功能的,但现在了解这些也没有用,先慢慢看逻辑吧。
最近的task是,要在原有QA工具上面,新增功能:在xlsx上新加4个row
QA工具整体代码看起来不多,但是我觉得比较困难的部分,就是每一次他都会配置一些环境,导入properties,现在对那些properties分别代表什么,有什么用,都不是很清楚,只能直接用,看到不清楚的东西就感觉很不安啊。
而且这也是我第一次要bat包来跑程序,很酷炫,之前一直是在本地放在tomcat跑或者是直接在myeclise上面,可能到后面,我们写完的程序,都会像我们之前所说的,打包成jar包,然后可以直接跑,酷炫。
我们要跑的应该是这个,这个包的功能就是把对应的Excel里面填的东西,转换成request,像模拟之前手工测vessel和route一样把请求发送到solr,然后返回的response给存到本地。其实他会把Excel里面的东西,加到我们预先配置好的model里面,其实就是一个xml,里面是一些写死了的格式,而Excel表格里面你只要填上一些必要的搜索信息就行了。
现在就慢慢看一下整个代码的逻辑把。
main方法进来以后,跟我之前所说的一样,就是会先配置环境,导入这个properties。
进入这个方法
在这个方法里面获取properties里面的内容,放到configuration里面。
获取到properties里面EnvironmentList的值,顾名思义就是环境的list,之后可能会有不同的环境,目前list里面就只有一个。如果后期list里面有别的,就会分割然后存到options这个数组里面。
把list里面的内容显示在Joption让人选,然后选择的环境返回。
再回到main方法,声明一个File放我们打开跑的Excel。
获取他的绝对路径。
这个checkExcelAvailable方法要验证Excel的有效性,但里面是这样子验证的:
它用了file的renameto方法,
重命名为它本身,但是他会先进行一个验证,他会先找这个文件是否存在,不存在就会返回false。
我有点疑惑 为什么这里不直接用exist方法呢?
验证成功以后,会将文件备份,其实就是生成一个新的Excel,然后copy。
获取Excel的输入流,XSSFworkbook是Excel的工具类。
这里就获取到表格。
rowCount是所有行数,是通过Excel工具类的getLastRowNum获取的,在这里它遍历每一行,把每一行的数据都放入recordModel中,再放入一个recordModelList。但我这里有点不明白,为什么这里也要把整个Excel放到recordModel这个对象里面。
判断recordModelList不为空之后,就是开拼接request了。
首先链接数据库
传入env环境下链接数据库的所需要的数据。
拼接testCase
他会根据carrier_scac加上时间生成一个Id。
生成各种参数,这里还会根据根据scac和por生成文件夹,然后把文件夹路径存在testCodeFolder,后面生成的input和output就会放在这里。
根据选择的参数会生成对应的input的文件。
其实就是把recordModel里面的数据放进json对象里面。(或者是jms)
发送request
我看了一下,就是把生成的input里面的东西发送到对应的链接就行了,跟手工测试差不多。
后面就是Compare的事情了 就大致看了一下了。