「测试线排查的一些经验-上篇」&& 后端工程师

文章目录

一般产品研发过程所使用的环境可分为:

  • 研发环境-dev
  • 测试环境-test
  • 生产环境-prod

软件开发中,完整测试环境包括:UT、IT、ST、UAT
UT = Unit Test 单元测试
IT = System Integration Test 集成测试
ST = System Test 系统测试
UAT = User Acceptance Test 用户接受测试(俗称:验收测试)

具体还要看公司业务情况,业务体态大的公司还会有新增的环境env。在研发环境-dev 中,也就是在程序员自己电脑上coding一下,用到的环境也就是我们说的本地环境,比如localhost。测试环境-dev 的话通常在测试线展开,公司会单独起一个干净的服务器环境,用于程序员在本地打包jar后发到测试环境测试使用,前后端联调的时候也会用这个环境。生产环境-prod也就是最接近真实的环境,通常就会面向用户或者客户的系统环境,在调试项目的时候,通常会在这个环境不断发版调试,让系统更完善,让系统朝着更能让用户、客户满意的方向进行修改。

端口占用

  • 一个jar包启动很容易失败,端口被占用是很常见的情况,有可能是当前这个启动的jar包直接占用了端口,有可能是这个服务内部服务占用了端口,这个时候就涉及到需要去查询端口占用情况,以最常见的80端口为例:

    shell 复制代码
    netstat -tunlp | grep 8080

    我们在查询以后可以得到一个结果:

    表明有一个java程序,进程号为15749,我们可以通过这个进程号杀掉当前java服务,方便我们启动当前的jar程序。

    杀掉它可以通过:

    shell 复制代码
    kill -9 15749

    这里的9参数表示:强制杀掉一些杀不死的进程。

    我们也可以查看所有端口的开放情况,看端口被你那些服务占用运行:

    shell 复制代码
    netstat -ntlp

    这两种方案都比较方便,看你适合哪种排查就用那种吧。

脚本失灵

  • 我们将项目放到服务器维护的时候通常会写很多脚本,比如sh,bat文件,这个看操作系统。例如服务器linux环境下,我们会写诸如start.sh、stop.sh等脚本文件,方便我们快速启动某个服务,当我们启动脚本发生一些错误的时候,我们可以手动执行脚本内部的命令看看能不能启动,如果能启动就可以判断脚本出了问题,如果不能启动,那就是命令的问题。

线上部署项目结构模版

  • 线上部署一个项目也是有一个规范的,大致可以这样去分:

当然了可以随机加减一些东西,至少基础文件还是要有这些。

配置文件生效

在启动一个jar包的时候最好指定一下配置文件,让他们一起启动,检查一下配置文件在线上是否能正常生效:

注意:

在这里极容易犯得一个错误就是jar包没有放在config文件外面,这样进行编译的话就会报错,配置文件就不会生效!

其实写到这里还没写完。。。比如要学会保存项目启动日志,通过日志排查问题等等,我打算把这些放到下期文章来说。

相关推荐
这个男人是小帅30 分钟前
【GAT】 代码详解 (1) 运行方法【pytorch】可运行版本
人工智能·pytorch·python·深度学习·分类
Qter_Sean32 分钟前
自己动手写Qt Creator插件
开发语言·qt
何曾参静谧36 分钟前
「QT」文件类 之 QIODevice 输入输出设备类
开发语言·qt
爱吃生蚝的于勒2 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
小白学大数据4 小时前
Python爬虫开发中的分析与方案制定
开发语言·c++·爬虫·python
冰芒猓5 小时前
SpringMVC数据校验、数据格式化处理、国际化设置
开发语言·maven
Shy9604185 小时前
Doc2Vec句子向量
python·语言模型
失落的香蕉5 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
红中马喽5 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
杜杜的man5 小时前
【go从零单排】Closing Channels通道关闭、Range over Channels
开发语言·后端·golang