• 学习web测试bug定位方法总结(借鉴)


    在知乎看到这篇文章不错,为了加强记忆敲了一遍。已将链接放在标题中。

    前台错误

    前台的bug通常是功能、界面和兼容性等相关,涉及到jstl,jsp,js,css,html方面比较多。

    bug主要有两块,一是js写的有问题,可通过F12在console中查看报错信息,一般浏览器都会显示报错的js,对于出错的js可以在Sources下查看报错的资源文件,基本上都会找到错误原因的变量未定义,参数未定义等,js错误都是很好解决的。

    第二个页面中的bug,现在web项目基本上没有做静态页面的都是动态了,所以页面中要么使用了小脚本要么使用了EL表达式来存值。页面报错在控制台可以看到错误行号和附近代码。

    图片不显示。在浏览器输入地址,如果能打开图片就是后台问题,如果打不开就是前台问题。

    可以根据响应的值判断一些bug所在:

    (1)响应中没有数据,则是后端数据没有返回,前端展示为空,则为后端问题。例如,

    新增一个数据,没有显示,通过请求中可以看到数据total为0,则是后端数据没有返回。

    (2)响应中有数据,但是前端显示错误了,可以根据字段值判断是否前端显示中取错了字段显示,可以判断是前端绑定字段错误问题。

    (3)响应中有数据,但是跟自己操作的结果不一致,可以根据数据库查询,如果数据库也没有记录,可能是代码有问题,没有记录操作。

    后台错误

    根据后台日志文件查找错误

    后台涉及servlet,jms,ejb,还有很多框架,struts,hibernate,spring,ibatis等。bug比较难改,但是好找。主要就是看控制台报错,然后定位错误行号。如果配置文件没有问题,那么一般报错就是空指针,或者数组下标越界。看附近的变量,看方法的参数基本上可以定位错误。

    重启的一般情况:

    (1)热部署(新增部分功能,或者修改部分bug)

    (2)发布新版本(整个系统)

    (3)内存溢出,此时重启服务即可

    由于项目中有线程程序,./shutdowm脚本关闭Tomcat程序,不能把启动的线程全部关闭,造成服务器启动线程未关闭的错误。Linux中重启Tomcat的一般步骤(一般是先关闭进程,然后进行重启,如果要删除某个文件 rm 文件名,或者不为空的文件夹 rm -rf 文件夹名称)

            cd usr/local/ //测试服务器名称/bin

      ps -exf //看测试服务器下运行的项目的主进程(最前面的数字为PID进程号)

      kill -9 PID //强制关闭某一项目的主进程

    ps aux和ps -ef命令区别

      ps aux 是用BSD的格式来显示 java这个进程

      显示的项目有:USER,PID,%CPU,%MEM,VSZ,RSS,TTY,STAT,START,TIME,COMMAND

      ps -ef 是用标准的格式显示java这个进程

      显示的项目有:UID,PID,PPID,C,STIME,TTY,TIME,CMD)

    如何查看日志

    一台服务器可以部署多个应用
    cd usr/测试服务器名称/logs//查看先进入到服务器的logs的目录下
    tail -f catailna.out //监视catalina.out文件的尾部内容(默认10行)
    日志中常见问题
    获取日志文件中常遇到的问题

     (1)编码问题:tomcat是新的,需要改编码修改tomcat的server.xml文件<Connector port="8080"URIEncoding="UTF-8"/>,特别是windows下的项目重新部署到linux系统下。

    (2)空指针:程序问题,一般没有考虑到为空的情况,或者主外键约束的数据为空,或者删除关联数据,导致为空。

    (3)长度过长:超过最大长度,测试环境修改数据库字段长度后生产环境未修改,导致报错。

    (4)非法数据

    (5)内存溢出:重启

    一般的问题原因总结

    程序:为空判断,增删改查

    数据初始化:数据库表结构和数据初始化,权限配置

    故障无法重现时:

    (1)看日志,根据日志定原因,则在测试环境中按照日志提示构造条件相同的测试案例测试,尝试在测试环境中将问题重现。问开发。

    (2)测试环境和配置与实际的工程环境和配置有哪些差异等。同时主动与开发负责人、工程实施人员以及有经验的项目经理讨论,分析可能导致的原因。

    辅助工具:Linux和sql

    linux 查看日志

    QL用来筛选数据或直接进行数据修改状态,多用于集成测试过程中前后流程相连接



    作者:王嘉
    链接:https://zhuanlan.zhihu.com/p/31145844
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    java如何编写多线程
    Java调用dll动态库
    HashMap源码解析
    LinkedList源码解析
    ArrayList源码解析
    springboot配置cxf
    java生成二维码
    原生js--跨域消息传递
    原生js--应用程序存储和离线web应用
    原生js--userData
  • 原文地址:https://www.cnblogs.com/zhanghr0728/p/9673669.html
Copyright © 2020-2023  润新知