java代码测试技巧
1、前端页面测试
首先页面测试我们遇到最繁琐的问题是与数据库互联的时候测试,当测试某一功能时反复修改页面然后反复启动服务,这样是很浪费时间的,经过我的分析发现,我们用的容器如weblogic、tomcat加载项目的原理都是一样的,然而部署之后真正执行的代码是解压到缓存中的代码。我们从中可以找到有html、jsp、js这类前端的文件。
我们可以将修改过的html、jsp、js文件放到缓存中,页面直接刷新即可以呈现你修改过的内容。tomcat跟weblogic加载运行的原理是一样的,我下边以windows中的weblogic举例。
首先找到你domain的位置 ,找到你项目加载后缓存文件夹,我的目录是这样的,每个人的是不一样的,具体看你自己设置的名称。
以上文件都是执行加载的项目前端文件,这些都是在缓存中的,我们可以将修改的文件在缓存文件夹中找到对应的文件替换掉,然后在浏览器中刷新页面,我们修改后的功能就可以呈现,我们可以在缓存中反复修改而不用重启服务,这样可以节约很多时间。测试的时候可以F12打开浏览器开发工具,进行打断点跟踪测试,也可以获取请求的头文件,以及通过抓包的方式来验证功能。
如果不在缓存中修改前端文件,如果要通过重启服务测试前端功能,一定要删掉缓存中的文件,因为项目执行,只是执行缓存加载进来的文件,也就是war包或者par包解压后的文件。
以上在缓存中修改测试的方法仅限于前端的文件html、jsp、js后台的java文件和数据库配置的修改是不成立的。
2、后台测试技巧
后台测试的方法有很多,单元测试、单步调试、与前端集成测试等多种测试方法。
现在很多项目都要打包集成在容器中进行测试,那么就涉及到java后台代码的修改和打包之间的关系。通常我们只是修改了某几个类或者接口的情况下我们没必要执行一次打包脚本重新打包,我们可以将修改后编译的class文件直接拖到war包中的对应文件进行替换,删除缓存重启服务即可。如果只是简单的修改一些位置比如只是一些参数,自己没有必要测试的非功能性的问题,我们也可以将war包中的class直接拖到反编译工具(如gui)中进行修改 然后再拖回原处。
单元测试。其实这个是我们比较常用的测试方法,我们可以通过将方法参数,传入的数值进行模拟测试,以达到方法实现的功能。这个是比较简单的。
单步调试。单步调试也就是所谓的debug调试,这个调试方式非常方便,我们可以通过打断点以debug模式启动,对每一行代码的取值传值进行验证。新手建议一定要学会这种调试方式,因为新手经常问的问题范围都很广,不是你的同事一般很难一眼就能确认问题的根源,所以新手自己一定要学会定位问题,把问题定位在某一行或者某几行,是什么类型的问题空指针?越界?类找不到等问题。
我们一般测试是通过打包扔到容器中进行测试,当程序报错很多朋友第一时间回去看控制台,其实控制台提供的错误提示都是比较宽泛的,不够具体只是一个错误类型,当我们看控制台无法解决错误时,我们应该去容器中拿你执行时加载整个过程的日志,这个里边一般报错信息,比如sql取值都是可以拿到的,这样找的问题是比较清晰的也比较容易解决。