通过压力测试改善Web应用程序的性能
2017-12-07杭佳祺王川罗西
杭佳祺+王川+罗西
摘要:近年来互联网技术的不断发展带动Web应用的不断普及,与此同时Web应用也成为黑客攻击的重要对象。为保证良好的网络环境,需要对Web应用程序的性能不断改善。当前通过压力测试可以很好地完成相关的性能改良工作。基于此,本文将重点阐述通过压力测试改善Web应用程序性能的相关策略。
关键词:软件测试;Web应用;互联网技术;压力测试
中图分类号:TP274 文献标识码:A 文章编号:1007-9416(2017)09-0213-02
Web应用如今已经变得十分广泛,对其进行开发时,由于受到一定因素的影响,表现出一定的随意性,导致对系统测试的过程中出现一定的问题。当前Web环境变得日益严峻,黑客的存在随时可能会对网络环境造成严重威胁,同时还会损害用户的隐私和经济利益,因此加强安全测试,提高Web程序性能已经是一个迫在眉睫的工程。压力测试是一种较为常用的测试手段,能够获得较好的测试效果,从而对程序性能不断优化。
1 Web安全性测试
1.1 概念
安全性测试指的是对应用程序进行安全验证并通过测试发现其中存在缺陷的过程。安全测试的过程不是证明应用程序本身的安全性,因此这种测试不仅仅是本身程序的检测,更是一种抗攻击的检测[1]。完善的安全性测试应该通过表格数据证明,在系统面临攻击和恶意入侵时,依然可以满足用户需求。
1.2 Web安全测试
具体的Web安全测试指的是借助各种工具的作用,对Web应用活动进行激发和模拟的过程。Web安全性测试包含很多方面,主要可以从部署结构、输入验证、身份验证、配置管理、敏感数据保护、会话管理、参数操作、异常管理、审核和日志记录等几个方面入手。
2 Web应用中存在的主要安全隐患
当前,由于技术的限制以及测试技术和测试工具的制约,Web应用中存在的安全隐患较多。具体的安全隐患主要有:SQL注入攻击、跨站式脚本攻击(XSS)、无效认证和会话管理、安全配置错误以及传输层数据保护等。
2.1 SQL注入攻击
具体指的是通过构建特殊的输入作为参数对Web应用程序进行干扰。并且输入的SQL是一种语句组合的形式[2]。通过对SQL语句的执行完成对攻击操作的执行。造成这种问题的主要原因是整个程序对用户输入的数据没有进行细致的过滤,导致非法数据对系统造成入侵。
2.2 跨站式脚本攻击
这是一种经常在Web应用中出现的计算机安全漏洞。这种攻击可以允许恶意Web用户将代码植入到其他用户的使用界面中。XSS攻击可以分成两类,一种是内部攻击,主要体现的是程序自身的漏洞;另一种是外部攻击,主要指的是通过制造XSS跨站漏洞网页影响正常的网页[3]。
2.3 无效认证和会话管理
在访问者对Web应用的使用过程中,应用程序的认证和会话管理在执行过程中常常会出现一定的问题。导致攻击者可以通过对数据包的抓取、重放攻击等手段。获取用户密码、会话授权,进而窃取用户的账户。
2.4 安全配置错误
完善的保障体系应该对应用程序、系统框架、应用程序服务、页面服务、数据库服务以及应用平台进行精密的部署和相关设置。以上几种内容的设定都应该具备精准的定义、执行和保存。但在实际应用中,大量的用户会选择保障系统的默认设置,导致许多项目的配置情况有误,进而出现一定安全配置问题。
2.5 传输层数据完整性保护
Web应用程序由于本身的特点常常对网络通信内部内容完整性的验证、加密以及保护等性能难以实现。当情况出现时,应用程序会自动选择加密性较差的算法执行,并使用过期的或者无效的验证信息。有时甚至不能使用程序本身的安全保障功能。
3 压力测试的准备阶段
3.1 压力测试
压力测试中会涉及到一个关键词,就是吞吐量。吞吐量指的是在某一固定的时间段内,能够处理的用户请求数量。而压力测试指的是在负载条件下,对应用程序进行测试从而确定程序的最大吞吐量。因此这种测试模式也被负载测试[4]。压力测试的主要目的在于对Web应用程序在负载情况下出现性能问题的识别和隔离,从而降低或者消除性能问题的影响,使Web应用程序达到或者超过期望的流量参数。通过测试发现性能问题,以后就可以采取针对性措施进行处理,从而对程序进行优化和改善,降低用户请求的响应时间,提高用户体验程度。
3.2 通过系统配置创建可控制的测试环境
对Web应用程序进行压力测试,需要完成用户模拟,这种模拟是通过对软硬件的模拟来完成的。模拟程度越接近真实使用环境,测试结果越有意义。为保证有足够的浏览器和用户请求,需要使用特定的计算机终端和服务器。同时对机器的硬件要求应该按照实际用户的使用情况进行决定。在搭建可控制的测试环境时,具体的配置如下:
3.2.1 软硬件的配置
為保证相似度,试验系统应该尽可能镜像生产系统。CPU、RAM以及网络带宽的硬件配置是压力测试中的重要方面。应该在配置过程中应该通过跟实际情况的对比,将站点配置设计在程序外或者程序内执行。另外Web程序的执行环境也是压力测试的重要影响因素[5]。
3.2.2 IIS配置
配置IIS来镜像生产服务器,因特网服务管理器的属性页面能够为IIS提供各种可用的调整选项。重点的调整选项包括启动记录的确定与否,同时还能在性能的选项中,确定预期的日点击数量。
3.2.3 安全配置
应用程序的安全方案会对压力测试造成严重的性能影响。遇到加密技术时,这种影响就会被扩大化,因此需要引起对安全配置的重视。
3.2.4 用户负载配置
配置时,应该首先确定访问程序的最大用户数,之后对该数量进行加倍处理。成功的配置应该大于最大用户数量。同时在测试时,应该对测试时间段进行明确,选择负载高峰期时完成测试工作,保证用户请求数量,提高测试的准确性。endprint
3.2.5 压力工具的选择
在实际使用中,同一时间段,会有大量的用户对Web应用程序发出请求,因此需要选择合适的压力工具完成检测,以提高精准度。
4 压力测试的目标参数
在进行压力测试结果分析之前,应该确定一定的目标参数,从而正确对Web性能进行评估。从而通过一定的改进处理工作使应用程序满足高标准的性能要求,这些关键目标参数主要体现在以下几个方面:
4.1 服务器的错误率
服务器的错误是用户在访问中会碰到的一种问题,在压力测试阶段同样也会出现同样的问题,因此对其进行记录,并分析原因,对于改善应用程序的性能具有重要意义。
4.2 CPU的承受率
这是压力测试的重要方面,也会直接影响到后面Web网站的最大负荷。在不同的Web程序中也会有不同的尺度度量,因此在进行测试时,可以通过对Web层进行施压,从而完成相关测试。
4.3 内存泄露
内存泄露会导致资源数量不足,影响用户使用,因此在压力测试时,应该对系统进行确认,并与系统简单的超负荷情况进行区分。
4.4 延迟处理
执行复杂代码构成的应用程序时,容易遇见延迟的问题。应该对延迟时间进行最小化处理,保证测试的准确性。
5 压力测试的执行与结果分析
5.1 压力测试的执行
测试策略完成后,压力测试的执行是一个很简单的过程。借助测试工具的作用,在执行之前对设备以及网络情况进行检查,检查无误后,就可以进行压力测试。在测试数据的记录过程,不仅要完成对数据的准确记录,还应该进行一定的定性分析,从而判断测试情况的准确性。
5.2 压力测试的结果分析
硬件升级是提高吞吐量的有效手段,在这一过程中会增加成本,因此需要平衡。对数据库的优化应该从设计入手,选择优质的算法结构对于改善程序性能,正确指引用户的访问请求具有重要意义。在负载的配置上,应该做到不断优化,避免用户直接采用系统的默认属性,可以通过一定的提示帮助用户进行合理设置,另外在代码的执行问题上,应该进行加密设置,提高安全访问,降低响应时间。
6 结语
在Web程序的开发过程中,会面临很多的安全性问题,如果得不到及时处理,用户在使用过程中就会暴露其中的安全隐患,不仅降低了用户体验度,严重时会造成用户的隐私泄露、财产损失等严重问题。通过指定合理科学的测试方案,采用压力测试的方式对系统进行安全性检测,可以有效改善Web应用程序的性能,进而不断满市场对Web应用的需求。
参考文献
[1]李媛.Web应用程序的压力负载测试[J].科技信息(科学教研),2016,(21):123-124.
[2]楊萍,李杰.利用LoadRunner实现Web负载测试的自动化[J].计算机技术与发展,2017,(01):42.
[3]桑圣洪,胡飞.性能测试工具LoadRunner的工作机理及关键技术研究[J].科学技术与工程,2017,(06):81.
[4]李克文,苏波.基于Web应用的快速压力测试研究[J].微计算机应用,2016,(09):45.
[5]李东昱,苗放.LoadRunner在Web应用程序性能测试中的应用[J].软件导刊,2007,(19):124-125.endprint