构建测试环境是软件测试实现的重要阶段,测试环境是否合适将严重影响测试结果的真实性和正确性。测试环境包括硬件环境和软件环境。
硬件环境是指由必要的服务器、客户端、网络连接设备和辅助硬件设备(如打印机/扫描仪)组成的环境。软件环境是指被测软件在运行过程中,由 *** 作系统、数据库等应用软件组成的环境。
扩展资料:
测试环境的组成部分:
1.需要的计算机数量,以及每台计算机的硬件配置要求,包括CPU的速度、内存和硬盘的容量、网卡支持的速度、打印机的类型等。
2. *** 作系统、数据库管理系统、中间件、WEB服务器以及部署被测应用服务器所需的其他必要组件的名称和版本,以及使用的相关补丁的版本;
3. *** 作系统、数据库管理系统、中间件、WEB服务器和服务器存储各种测试活动中生成的文档和数据所需的其他必要组件的名称和版本,以及要使用的相关补丁的版本;
4. *** 作系统、数据库管理系统、中间件、WEB服务器和其他计算机执行测试所需的必要组件的名称和版本,以及要使用的相关补丁的版本;
5.被测应用程序的服务器环境是否需要专用计算机,测试管理服务器环境是否需要备份;
6.网络环境要在测试中使用。例如,如果测试结果与连接到Internet的线路的稳定性有关,则应考虑为测试环境租用单独的线路;如果测试结果与局域网内的网速有关,则应保证计算机的网卡、网线以及所使用的集线器和交换机不会成为瓶颈。
在开发中大型的JavaEE项目时,前后端分离的框架逐渐成为业界的主流,传统的单机部署前后端在同一个项目中的工程项目越来越少。这类JavaWeb项目的后端通常都采用微服务的架构,后端会被分解为诸多个小项目,然后使用bbozookeeper或者springCloud来构建微服务,前端则会是一个单独的项目,前台的请求通过微服务来调用。但是,不同与传统的web项目,这类前后端分离的项目如何在开发中部署和运行呢?
当前后端分离时,后端项目一定会被加载到tomcat的webapp目录下面,但是前端的资源院该如何被访问到呢?这里以tomcat这个中间件为例,探讨在开发这类项目的时候,如何让前后端分离的项目部署并且运行起来,即后端项目部署在tomcat之后如何在运行时访问静态资源(非上线部署)。
主要有两种方案:1在本地通过Nginx来处理这些静态资源。2、将静态资源统一放入一个javaweb应用中,并将自动生成的war包随后端项目一期丢入tomcat。下面详细介绍
一、使用Nginx来访问静态资源。
在本地安装nginx并且修改nginxconf,修改相关配置,将web访问的端口的资源进行更改,配置如下:
server{listen80;server_namelocalhost;charsetutf-8;#aess_loglogs/hostaesslogmain;
location/{proxy_passtomcat_pool;proxy_redirectoff;
proxy_set_headerHOST$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
client_max_body_size10m;
client_body_buffer_size128k;
proxy_connect_timeout90;
proxy_send_timeout90;
proxy_read_timeout90;
proxy_buffer_size4k;
proxy_buffers432k;
proxy_busy_buffers_size64k;
proxy_temp_file_write_size64k;
}
location~(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|woff|woff2|ttf|eot|map)${
rootD:Workspacesesop-html;indexindexhtml;
}
listen对象改为你本地的tomcat访问端口,最下面location中的root改为你前端项目中静态资源的位置,这样就可以实现只部署后端的项目就能访问前端的页面了。
二、将前端项目转换为动态的web项目,随后端项目一起丢入tomcat
这个方案省去了在本地安装和配置nginx,但是也只适用于开发阶段项目的部署运行和调试,真正在生产环境通常前后端项目会部署在不同的服务器。
如果是IntellijIdea,在导入前端项目之后,右键项目addframeworksupport-->webapplication,这时将会把前端项目转换为一个javaweb项目,然后将静态资源放在生成的web目录下即可。
如果是eclipse,可以新建一个javaweb项目然后将静态资源放入web或者webcontent目录下,或者直接先导入前端项目,然后通过projectfacts将项目转换为dynamicweb项目并勾选js等相关配置。
然后,运行项目时把后端的war包和前端的war包一同添加到deployment中运行即可。
一般要搭建服务器,不同的环境不一样这个要看什么环境了,数据库,有钱的话,可以使用独立服务器需要投入的资金较多虚拟主机或云服务器都可以的、实惠,比较便宜,不需要太多资金和维护那此时,那此时,什么都不用管。1、假设论坛服务器在自己的计算机安装服务器 *** 作系统如win2003 win2008 等。2、配置服务器,并安装aspnet所需对应服务。如打开IIS服务,安装SQL Server 2005 ,Microsoft Visual Studio 2005等软件。3、软件环境好了,接下来看你的上网方式。稳定的服务器一般使用静态IP地址和带宽,选择所在地区最好的出口,但这成本对于个人比较高。家庭用户动态IP地址则受网络运营商限制,不一定能做服务器使用(比如我们这就是,在电信网通都封掉了动态IP做服务器的可能性,不在同一个城市,根本访问不了)。动态IP可以通过动态域名解释软件如花生壳之类的,来绑定域名。当然,也可以通过直接访问IP地址来访问。4、如果家里边使用路由,要在自己的路由上边设置端口映射。有多少用户同时发送请求以确定服务器配置。如果时间再划为秒,你有多少带宽;6人,10000请求数问题都不大,cpu表示太闲了不如休眠算了,每秒钟1/,如果是这样指定windows服务器干这事显然不专业,你需要确定相同的时间,连一个人都不到?是的,只要搭建好WEB服务器和安装好数据库服务程序,WEB服务正常了,测试环境也就具备了贴一篇我们内部的文章:随着浏览器功能的不断完善,用户量不断的攀升,涉及到web服务的功能在不断的增加,对于我们测试来说,我们不仅要保证服务端功能的正确性,也要验证服务端程序的性能是否符合要求。那么性能测试都要做些什么呢?我们该怎样进行性能测试呢?
性能测试一般会围绕以下这些问题而进行:
1 什么情况下需要做性能测试?
2 什么时候做性能测试?
3 做性能测试需要准备哪些内容?
4 什么样的性能指标是符合要求的?
5 性能测试需要收集的数据有哪些?
6 怎样收集这些数据?
7 如何分析收集到的数据?
8 如何给出性能测试报告?
性能测试的执行过程及要做的事儿主要包含以下内容:
1 测试评估阶段
在这个阶段,我们要评估被测的产品是否要进行性能测试,并且对目前的服务器环境进行粗估,服务的性能是否满足条件。
首先要明确只要涉及到准备上线的服务端产品,就需要进行性能测试。其次如果产品需求中明确提到了性能指标,那也必须要做性能测试。
测试人员在进行性能测试前,需要根据当前的收集到的各种信息,预先做性能的评估,收集的内容主要包括带宽、请求包大小、并发用户数和当前web服务的带宽等
2 测试准备阶段
在这个阶段,我们要了解以下内容:
a 服务器的架构是什么样的,例如:web服务器是什么?是如何配置的?数据库用的是什么?服务用的是什么语言编写的?;
b 服务端功能的内部逻辑实现;
c 服务端与数据库是如何交互的,例如:数据库的表结构是什么样的?服务端功能是怎样 *** 作数据库的?
d 服务端与客户端之间是如何进行交互的,即接口定义;
通过收集以上信息,测试人员整理出服务器端各模块之间的交互图,客户端与服务端之间的交互图以及服务端内部功能逻辑实现的流程图。
e 该服务上线后的用户量预估是多少,如果无法评估出用户量,那么可以通过设计测试执行的场景得出这个值;
f 上线要部署到多少台机器上,每台机器的负载均衡是如何设计的,每台机器的配置什么样的,网络环境是什么样的。
g 了解测试环境与线上环境的不同,例如网络环境、硬件配置等
h 制定测试执行的策略,是需要验证需求中的指标能否达到,还是评估系统的最大处理能力。
i 沟通上线的指标
通过收集以上信息,确定性能测试用例该如何设计,如何设计性能测试用例执行的场景,以及上线指标的评估。
3 测试设计阶段
根据测试人员通过之前整理的交互图和流程图,设计相应的性能测试用例。性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数量测试,网络性能测试,服务器性能测试,具体编写的测试用例要更具实际情况进行裁减。
用例编写的步骤大致分为:
a 通过脚本模拟单一用户是如何使用这个web服务的。这里模拟的可以是用户使用web服务的某一个动作或某几个动作,某一个功能或几个功能,也可以是使用web服务的整个过程。
b 根据客户端的实际情况和服务器端的策略,通过将脚本中可变的数据进行参数化,来模拟多个用户的 *** 作。
c 验证参数化后脚本功能的正确性。
d 添加检查点
e 设计脚本执行的策略,如每个功能的执行次数,各个功能的执行顺序等
4 测试执行阶段
根据客户端的产品行为设计web服务的测试执行场景及测试执行的过程,即测试执行期间发生的事儿。通过监控程序收集web服务的性能数据和web服务所在系统的性能数据。
在测试执行过程中,还要不断的关注以下内容:
a web服务的连接速度如何?
b 每秒的点击数如何?
c Web服务能允许多少个用户同时在线?
d 如果超过了这个数量,会出现什么现象?
e Web服务能否处理大量用户对同一个页面的请求?
f 如果web服务崩溃,是否会自动恢复?
g 系统能否同一时间响应大量用户的请求?
h 打压机的系统负载状态。
5 测试分析阶段
将收集到的数据制成图表,查看各指标的性能变化曲线,结合之前确定的上线指标,对各项数据进行分析,已确定是否继续对web服务进行测试,结果是否达到了期望值。
6 测试验证阶段
在开发针对发现的性能问题进行修复后,要再执行性能测试的用例对问题进行验证。这里需要关注的是开发在解决问题的同时可能无意中修改了某些功能,所以在验证性能的同时,也要关注原有功能是否受到了影响。
想看原文或者有测试其他相关的问题可以关注下 搜狗测试 微信公众号,我们上面有不少关于性能测试分享~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)