【软件测试】全网火爆,实战Web项目前后台的bug定位(超详细)


前言

系统整体架构

Server端:jsp+Servlet+json…
数据库:MySQL、oracle、SqlServer…
前台: jstl,jsp,js,css,html…
后台:servlet,jms,ejb, 还有很多框架,struts,hibernate,spring,ibatis…
Jsp:分不清前后台的,因为这里涉及到一个运行时刻的问题,它们的运行时刻是不同。

用户发出请求后,服务器解析用户请求,转至对应的jsp,这个时候可以说是整个jsp都是后台程序。

而Jsp做出响应后,把响应的内容返回给浏览器,这个时候浏览器就只看见html,css,javascript,这个时候所有的程序又都是前台程序。

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

前后台bug定位

1、前台的bug通常是功能、界面和兼容性等有关;后台的bug与性能和安全性有关

前台bug定位:按F12在控制台中查看报错信息,对于出错的js可以在Sources下查看对应报错的资源文件,写入缺陷管理工具提交给开发即可(或者使用一些抓包工具,

抓取请求相应过程中的资源文件)

前台bug注意以下三个方面:

1)网站前台权限控制:没有权限的用户不能直接输入url的方式来进行访问,必须进行登录。以后涉及到权限的测试,一定不能漏掉url的方式也需要验证一下。

而在单个页面进行W3C测试时则需要去掉该权限控制。

2)网站前台的title,对于这个也很容易忽视。进入到不同的功能页面,title显示应该是有,并且要和你进入的页面一致。title就是在浏览器最左上角看到的那些文字

3)http和https的注意点:

https是一种安全链接,需要证书,所以在系统中客户会要求某些关键的地方希望加上这种安全连接,那么此时你需要注意的是:对于不需要的安全链接的地方千万也要去

重点测试,有些开发会很容易忽略这一点。

要打开HTTPS开头的网站,前提是该网站安装了SSL证书,只有安装了SSL证书的网站,并且开启了443端口,你才可以通过HTTPS加密协议无访问;如果没有则不能访问。

比如在某个网站http协议后面加个s去访问,看能否访问成功,能成功,会显示绿色安全小锁,否则就不能访问。

2、后台bug定位:根据后台日志文件

系统使用secureCRT进行日志获取,或者服务器控制方面的操作(关闭和重启)

重启的一般情况:
热部署 (新增部分功能,或者修改部分bug);
发布新版本 (整个系统);
内存溢出,此时重启服务器即可;

由于项目中有线程程序,./shutdown脚本关闭tomcat程序,不能把启动的线程全部关闭,造成服务器启动线程未关闭的错误。

Linux系统中重启Tomcat的一般步骤:(一般是先关闭进程,然后进行重启 ,如果/要删除某个文件:rm 文件名,或者不为空的文件夹:rm -rf 文件夹名)

cd usr/local/   //测试服务器名称/bin
ps -exf         //看测试服务器下运行的项目的主进程(最前面的数字为PID进程号)
kill -9 PID     //强制关闭某一项目的主进程
./startup.sh    // ./**.sh 即执行重启shell脚本文件 ,此时在测试服务器的bin下面,直接执行即可,其余的加上 chmod a+x shell脚本文件,也可用./执行

补充:
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)

3、如何查看日志?

一台服务器可以部署多个应用:

cd usr/local/测试服务器名称/logs     //查看先进入到服务器的logs目录下
tail -f catalina.out                //监视catalina.out 文件的尾部内容(默认10行)

4、日志中常见问题

获取日志文件中常遇到的问题:
1)编码问题:tomcat是新的,需要改编码 修改tomcat的server.xml文件
特别是windows下的项目重新部署到linux系统下,

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

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

4)非法数据

5)内存溢出:重启

5、一般的问题原因

程序:为空判断,增删改查,不同公众号调用的接口也不一样
数据初始化:数据库表结构和数据初始化,权限配置,

特别注意生产环境上的用户数据修改,此时用户在使用,很重要!!!

故障无法重现时:

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

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

测试环境ok,生产环境新增时保存失败,查看后台日志报长度溢出,数据库内容字段要求和生产环境不一致。

6、辅助工具:linux和SQL

linux查看日志;
SQL用来筛选数据或直接进行数据修改状态,多用于集成测试过程中前后流程相连接

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每个人的时间都是有限的,珍惜时间才能将梦想变成现实。面对困难,不要气馁,坚持奋斗才能看到希望。脚踏实地,不断努力,成功属于你!

人生就像一场马拉松比赛,不是速度快的人就能得到胜利,而是最后坚持到终点的人。用汗水浇灌梦想,用行动铸就未来,你我共同为新的奋斗目标努力!

生活中总会有挫折和失败,但不要气馁,因为每一次的努力都是积累。坚持奋斗,相信自己,成功就在不远处。让我们一起勇敢迎接未来,创造美好!

猜你喜欢

转载自blog.csdn.net/shuang_waiwai/article/details/130464099