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

文章目录

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

  • 研发环境-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文件外面,这样进行编译的话就会报错,配置文件就不会生效!

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

相关推荐
Tiger_shl12 分钟前
【.Net技术栈梳理】08-控制反转(IoC)与依赖注入(DI)
开发语言·.net·.netcore
Tiger_shl14 分钟前
【.Net技术栈梳理】10-.NET Core 程序的执行
开发语言·.net·.netcore
Q_Q51100828514 分钟前
springboot+python+uniapp基于微信小程序的旅游服务系统景点信息展示 路线推荐 在线预约 评论互动系统
spring boot·python·微信小程序·django·flask·uni-app
薄荷撞~可乐36 分钟前
C#高并发与并行理解处理
开发语言·c#
E___V___E40 分钟前
设计模式--装饰器模式
python·设计模式·装饰器模式
孤廖41 分钟前
【算法磨剑:用 C++ 思考的艺术・Dijkstra 实战】弱化版 vs 标准版模板,洛谷 P3371/P4779 双题精讲
java·开发语言·c++·程序人生·算法·贪心算法·启发式算法
sali-tec1 小时前
C# 基于halcon的视觉工作流-章33-矩状测量
开发语言·人工智能·算法·计算机视觉·c#
Dan.Qiao1 小时前
pycharm如何处理python项目间引用
ide·python·pycharm
万粉变现经纪人1 小时前
如何解决pip安装报错ModuleNotFoundError: No module named ‘sympy’问题
python·beautifulsoup·pandas·scikit-learn·pyqt·pip·scipy
酷炫码神2 小时前
第 2 篇:Java 入门实战(JDK8 版)—— 编写第一个 Java 程序,理解基础运行逻辑
java·开发语言·策略模式