• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

软件测试中的压力测试

发布: 2009-5-05 10:33 | 作者: 不详 | 来源: 测试时代采编 | 查看: 69次 | 进入软件测试论坛讨论

领测软件测试网    压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽。要减少用于测试的资源,可运行一个称为压力器 (stressor) 的工具。

        图 1 中的图像显示一种运行中的压力工具 EatMem。命名压力器时通常使用"Eat"前缀,后跟要使用的资源类型,因此减少内存、磁盘空间和降低 CPU 可用性的压力器可分别命名为 EatMem、EatDisk 和 EatCpu。EatMem 压力器是一个命令行程序,它接受一个指定运行时长的参数(以分为单位)。EatMem 大约每三秒钟尝试分配随机数量的可用内存。正如您在图 1 中看到的,内存请求可能失败。在这种情况下,EatMem 会一直尝试分配内存,直到成功为止。当然,该压力器工具自身并不执行任何实际测试;它只是准备一个进行测试的计算机状态。通过在测试实际程序的同时运行该程序,您可为应用程序模拟在常规测试环境中很难进行测试的条件。

图 1 运行中的 EatMem 压力器

    整体程序结构

        EatMem 压力器工具(用 C# 编写)的整体结构如图 2 所示。首先,我将一个 using 语句添加到 InteropServices 命名空间,这样就可以调用本机 Win32® 函数。特别地,我调用 GlobalAlloc 和 GlobalFree 函数来分配和释放内存,并调用 GlobalMemoryStatus 函数确定分配多少内存。我还使用了一些 Win32 API 函数来操作控制台文本的颜色。

Figure 2 EatMem Program Structure
using System;
using System.Runtime.InteropServices;

namespace EatMem
{
  class Class1
  {
    [DllImport("kernel32.dll")]
    extern static IntPtr GlobalAlloc(uint uFlags, uint dwBytes);

    [DllImport("kernel32.dll")]
    extern static IntPtr GlobalFree(IntPtr hMem);
   
    [DllImport("kernel32.dll")]
    extern static void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);
   
    public struct MEMORYSTATUS
    {
      public  uint dwLength;
      public  uint dwMemoryLoad;
      public  uint dwTotalPhys;
      public  uint dwAvailPhys;
      public  uint dwTotalPageFile;
      public  uint dwAvailPageFile;
      public  uint dwTotalVirtual;
      public  uint dwAvailVirtual;
    }

    static MEMORYSTATUS memStatusBuffer = new MEMORYSTATUS();
   
    [STAThread]
    static void Main(string[] args)

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 软件测试 压力

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网