当前位置: 首页 > news >正文

如何搭建测试环境?一文解决你所有疑惑!

什么是测试环境

测试环境,指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境=硬件+软件+网络+数据准备+测试工具。

硬件:指测试必需的服务器、客户端、网络连接等辅助设备。

软件:指测试软件运行时的操作系统、数据库及其他应用软件。

网络:指被测软件运行时的网络系统、网络结构以及其他网络设备构成的环境等。

数据准备:一般指测试数据的准备。测试数据会在测试用例设计的阶段设计好,然后软件运行的时候,作为软件输入去验证软件功能。如果是少量、正常的测试数据,可以直接通过手动方式模拟出来,如果是大量的用户数据的模拟,可以借助测试工具来构建。

测试工具:工具是辅助测试的好帮手,针对将要做的测试类型,可选择合适的工具让我们的测试事半功倍。比如接口测试,可以选择Jmeter或者postman;抓包工具,可以选择fiddler,wireshark等。

搭建测试环境的原则

真实。尽量模拟用户的真实使用环境。我们应该选用合适的操作系统和软件平台,了解符合测试软件运行的最低要求及用户使用的硬件配置,考虑到与其他软件共存时,是否能正常运行等。

无毒。若搭建的测试环境感染病毒,会导致测试软件经常出现莫名的崩溃,运行不起来等现象,导致测试中断。使用正版杀毒软件防止病毒感染测试环境,保证无毒环境。

独立。测试过程中要确保我们的测试环境独立,避免测试环境被占用,影响测试进度及测试结果。有时开发人员为确定问题会使用我们的测试环境,这样会打乱我们的测试活动。为避免这种情况,测试环境与开发环境应相互独立,开发人员根据缺陷表单,在开发环境中复现和定位问题。

可复用。当我们刚搭建好测试环境,安装测试软件之前及测试过程中,对操作系统及测试环境进行备份是必要的。在当测试环境遭到破坏时,可以恢复测试环境,避免测试数据丢失,出现不可预知的问题。

如何搭建测试环境

1. 认识LNMT架构

互联网公司比较典型的部署框架LNMT(Linux+Nginx+Mysql+Tomcat)如下图:

  • 浏览器和APP端是通过HTTP协议跟服务器进行交互的。
  • Nginx,有些公司也用Apache。这是常用的HTTP服务器和反向代理服务器。Nginx是用来提供静态资源的服务,Nginx接收到来自浏览器的请求以后,判断这个请求是否是静态资源(以JS、CSS、HTML、PNG等结尾的静态文件),如果是,则Nginx直接返回相应文件;如果不是静态资源,是动态请求,比如,请求某一个日志的内容,则Nginx会把请求转发给Tomcat来处理。
  • Tomcat,是处理动态的HTTP请求,调用各种其他服务,完成相应的任务,并返回HTTP响应给Nginx。如果涉及到写日志、读日志等数据相关的操作,就需要对数据库进行读写。另外,由于这些动态请求也会依赖一些第三方服务,比如说要调用支付宝的支付服务,那么它就会再发起一个HTTP请求到支付宝的对外服务器。它处理完整个逻辑之后,就会把相应的内容返回给Nginx,然后由Nginx返回给浏览器。
  • Mysql数据库,将各种数据有序的管理起来,并对其他应用提供统一的接口和服务。

2. LNMT架构部署

1)申请虚拟机器

申请两台虚拟机A和B,机器A作为Nginx服务器+Mysql服务器;机器B作为2台Tomcat服务器。

2) 在机器A上安装和配置Nginx

  • 下载并安装Nginx
  • 配置环境变量
  • 启动Nginx

3)在机器A上安装Mysql

  • 下载安装包并解压
  • 添加环境变量
  • 初始化数据库
  • 启动Mysql

4)在机器B上部署两台Tomcat

  • 关闭防火墙和selinux
  • 安装jdk环境
  • 下载Tomcat并解压两次,目录不同
  • 两台Tomcat建立软链接
  • 修改其中一台Tomcat的配置文件server.xml,避免端口冲突。server.xml配置的是地址、端口、最大连接数、编译好的应用程序目录等信息
  • 启动Tomcat服务
  • 验证部署成功,即浏览器输入ip地址+端口号能成功访问

5)配置Nginx

  • 配置负载均衡和两个Tomcat的反向代理
  • 检查语法并加载Nginx
  • 验证配置成功

一般测试人员部署测试环境步骤

运维/开发人员会给到测试人员一份部署文档,文档中会写清楚部署步骤和注意事项,主要有以下几项:

  1. 安装软件,如tomcat、jdk、mysql等;
  2. 上传项目包,如war包,放到tomcat的webapps目录下,解压war包的命令:unzip xxx.war;
  3. 修改配置,根据文档中说明修改tomcat、数据库等配置信息,项目的配置文件一般在项目名/WEB-INF/classes/这个目录下;
  4. 启动数据库,一般开发会给出初始化sql脚本;
  5. 重启tomcat服务。
  6. 查询相应的进程:ps -ef | grep tomcat7
  7. 杀掉进程:kill 进程编号
  8. 重启tomcat:执行tomcat/bin下的./shutdown.sh停止,再输入./startup.sh重新启动

相关文章:

如何搭建测试环境?一文解决你所有疑惑!

什么是测试环境 测试环境,指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称,简而言之,测试环境硬件软件网络数据准备测试工具。 硬件:指测试必需的服务器、客户端、网络连接等辅助设备。 软件&#…...

【JVM】JVM异常不打印堆栈信息 [ -XX:-OmitStackTraceInFastThrow ]

文章目录 一、背景二、原因三、 代码验证 一、背景 生产环境日志突然膨胀到100G, 为了定位问题,所以截取了部分报错日志, 问题是 堆栈信息呢? 哪里报的NPE在哪??? 信息如下: [ERROR] 2020-12-09 09:41:50.053 - [taskAppIdTASK-1919-33805-97659]:[156] - wait task qu…...

第十一章 目标检测中的NMS

精度提升 众所周知,非极大值抑制NMS是目标检测常用的后处理算法,用于剔除冗余检测框,本文将对可以提升精度的各种NMS方法及其变体进行阶段性总结。 总体概要: 对NMS进行分类,大致可分为以下六种,这里是依…...

vue项目中使用vant轮播图组件(桌面端)

一. 内容简介 vue使用vant轮播图组件(桌面端) 二. 软件环境 2.1 Visual Studio Code 1.75.0 2.2 chrome浏览器 2.3 node v18.14.0 三.主要流程 3.1 安装环境 3.2 添加代码 3.3 结果展示 四.具体步骤 4.1 安装环境 先安装包 # Vue 3 项目,安装最新版 Va…...

如何做好性能压测 —— 压测环境设计和搭建!

简介:一般来说,保证执行性能压测的环境和生产环境高度一致是执行一次有效性能压测的首要原则。有时候,即便是压测环境和生产环境有很细微的差别,都有可能导致整个压测活动评测出来的结果不准确。 1. 性能环境要考虑的要素 1.1 系…...

手机弱网测试工具:Charles

我们在测试app的时候,需要测试弱网情况下的一些场景,那么使用Charles如何设置弱网呢,请看以下步骤: 前提条件: 手机和电脑要在同一局域网内 Charles连接手机抓包 一、打开Charles,点击代理,…...

Axios七大特性

Axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js环境中发起HTTP请求。它有许多强大的特性,下面将介绍Axios的七大特性。 1. 支持浏览器和Node.js Axios既可以在浏览器中使用,也可以在Node.js环境中使用,提供了统一的AP…...

【机器学习基础】K-Means聚类算法

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学! ⭐特别提醒:针对机器学习,特别开始专栏:机器学习python实战…...

Vite - 配置 - 自动修改 index.html 中的title

需求描述 在Vue3项目的开发过程中,我们为了能区分正式环境和测试环境, 通常会进行环境配置文件的区分, 例如,开发环境一个配置文件、生产环境一个配置文件。因此,我们就希望 在项目的index.html 的 title 标签中&…...

基于安卓android微信小程序美容理发店预约系统app

项目介绍 为美容院设计一个系统以减少员工的工作量就成为了想法的初始状态。紧接着对美容院进行进一步的调查发现我的想法已然落后。基本上每个美容院都以有了自己的信息系统,并且做的已经较完善了。 在这时我突然想到,现在关注美容养生的人越来越多&am…...

*** stack smashing detected ***: terminated

有一个函数返回值是bool类型,但忘了return了,编译可以通过,但是运行的时候报这个错误。...

鸿蒙系统扫盲(二):再谈鸿蒙是不是安卓套壳?

最近小米发布了澎湃OS,vivo发布了蓝OS,好像自从华为回归后,大伙都开始写自己的OS了,小米官方承认是套壳安卓,然后被大家喷了,于是鸿蒙是不是安卓套壳的话题又回到了大众的视野,今天在讨论下这个…...

PG数据中DBeaver上传csv文件作为数据表

DBeaver 是一个开源的数据库工具,还是蛮好用的,有时候需要我们上传数据做表,数据为CSV格式的,DBeaver本身自带有功能实现的。 可打开连着的数据库,找到模式,点到下面的表里,选择一个表直接导入…...

第十七篇-Awesome ChatGPT Prompts-备份-百度翻译

Awesome ChatGPT Prompts——一个致力于提供挖掘ChatGPT能力的Prompt收集网站 https://prompts.chat/ 第十六篇-Awesome ChatGPT Prompts-备份【英文】 第十七篇-Awesome ChatGPT Prompts-备份-百度翻译 【中文】 高效提示词请参考,各种场景,2023-11-16内容如下(百…...

[Android] Amazon 的 android 音视频开发文档

https://developer.amazon.com/zh/docs/fire-tv/audio-video-synchronization.html#22-getplaybackheadposition-api-level-3https://developer.amazon.com/zh/docs/fire-tv/audio-video-synchronization.html#22-getplaybackheadposition-api-level-3...

UE4基础篇十六:自定义 EQS 生成器

UE4 中的 EQS 带有一组很好的查询项生成器,但在某些情况下,您可能更喜欢根据需要创建生成器。我决定编写自己的生成器,因为我必须编写一个查询来找到查询器周围的最佳位置,但又不能太靠近它。我知道我可以添加一个距离测试来随着距离增加分数,但我什至不想考虑距查询器一定…...

轿车5+1汽车变速器变速箱同步器操纵机构机械结构设计CAD汽车工程

wx供重浩:创享日记 对话框发送:汽车变速器 获取完整论文报告说明书工程源文件 变速器工程图 操纵机构3D图 一、机械式变速器的概述及其方案的确定 1.1 变速器的功用和要求 变速器的功用是根据汽车在不同的行驶条件下提出的要求,改变发动机…...

STM32F4移植SPI注意事项

一、注意事项 可以看我之前移植的文章,那些就不提了,记得要复用,把IO复用成对应的功能io,然后还要注意时钟,看你需要的功能,去调对应的时钟,把时钟调匹配了,基本上不会有问题。 比如…...

CV计算机视觉每日开源代码Paper with code速览-2023.11.16

点击CV计算机视觉,关注更多CV干货 论文已打包,点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构】ConvNet vs Transformer, Supervised vs CLIP: Beyond ImageNet Accuracy 论文地址:https://arxiv.org//pdf/23…...

Git 简介及使用(1)

目录 一、在 Linux 环境中安装 Git 1. 先检查当前服务器中是否有 Git(如果有显示如下图) 2. 安装Git 3. 然后重复第一步:查看 Git 的版本信息即可 二、Git 的初始化及配置 1. 创建目录 2. 对仓库进行初始化 3. 新增两个配置项&#xff08…...

解决ROS的‘Done checking log file disk usage’卡顿:你的~/.bashrc里ROS_IP设对了吗?

解决ROS日志检查卡顿:环境变量配置的深层解析与实战指南 当你在终端启动roscore时,是否遇到过长时间卡在"Done checking log file disk usage"提示的尴尬?这个问题看似简单,背后却隐藏着ROS环境配置的关键细节。本文将带…...

NeoPixel灯环故障深度修复:从信号完整性到电源设计的嵌入式实践

1. 项目概述:从“小麻烦”到深度修复最近几周,我一直在愉快地捣鼓Adafruit的NeoPixel灯带和灯环,这东西确实好玩,单线控制、全彩可编程,简直是创客项目里的“瑞士军刀”。但就在我准备大干一场,用它们来打造…...

避坑指南:Vivado FIR Compiler IP核配置的那些‘坑’(从MATLAB系数到FPGA实现)

Vivado FIR滤波器IP核实战避坑手册:从MATLAB系数到FPGA部署的12个关键检查点 当MATLAB的完美频响曲线遇上Vivado的硬件实现,FIR滤波器设计往往会遭遇理想与现实的落差。本文不重复基础操作流程,而是聚焦于那些让工程师深夜加班的典型问题场景…...

E-GEO:基于多智能体架构的AI搜索引擎优化工具实战指南

1. 项目概述:E-GEO,一个为AI搜索引擎而生的零门槛优化工具 如果你和我一样,最近几个月一直在琢磨怎么让自家网站的内容在ChatGPT、Claude、Perplexity这些AI搜索引擎里排得更靠前,那你肯定听说过“生成式引擎优化”这个概念。传统…...

5D动感影院|打造沉浸式体验的新一代互动影院解决方案

随着数字技术与沉浸式体验的不断发展,传统影院已经无法完全满足现代观众对互动性与真实感的需求。在这一背景下,5D动感影院应运而生,凭借多维度感官融合技术,为观众带来前所未有的沉浸式观影体验。作为集视觉、听觉、触觉及环境特…...

最优化方法和理论一轮复习

最优化方法与理论一句话本质:在一堆可选方案里,按照某个评价标准,找到最好的那个。数学形式通常写成:: 在变量x的所有可能取值中,找到让目标函数 f(x) 最小的那个 x。一、最优化到底在研究什么?…...

氢燃料电池混合动力能量管理与动力控制【附仿真】

✨ 长期致力于氢燃料电池、能量管理、等效氢耗、变换器、协同控制、永磁同步电机、滑模自抗扰研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)等效氢耗…...

Taotoken CLI工具一键配置团队开发环境实战指南

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken CLI工具一键配置团队开发环境实战指南 1. 场景与需求 在团队协作开发中,统一管理大模型调用环境是一个常见且…...

从High-NA EUV到波长微缩:半导体光刻技术的未来路径与核心挑战

1. 从0.33 NA到High-NA EUV:我们走到了哪一步?EUV光刻技术从实验室走向大规模量产,这中间的十几年,可以说是半导体行业里最惊心动魄的技术长征之一。2018年那会儿,行业还在为EUV光源的功率能不能突破250瓦而焦虑&#…...

NotebookLM API接入倒计时:GCP项目配额收紧前,必须完成的4步合规配置与审计清单

更多请点击: https://intelliparadigm.com 第一章:NotebookLM API开发接入 NotebookLM 是 Google 推出的面向研究与知识管理的 AI 笔记工具,其官方尚未开放公开 API,但通过逆向分析 Web 客户端通信及社区验证的认证流程&#xff…...