微软、浪潮工程师谈ERP压力测试
【技术文章】我们在进行***压力测试的过程中发现了一些问题,而其间和网友的互动中,也了解到读者们对这次ERP压力测试的关注程度。目前我们的测试已经接近尾声,测试报告也在陆续的发布出来,有的网友反馈就是测试报告看得不是很明白,我想这里面可能有些概念没有给大家说明白的。今天在微软CTC和二位技术专家见面,也就借着这个机会代表PConline的网友向二位咨询下关于压力测试、SQL2005和***的一些问题。 我们先来聊一下性能测试的一些常识性的和针对性问题。主要是对一些用户容易模糊的概念进行澄清。比如说什么叫“并发”,什么叫思考时间,一般测试,怎么进行测试。
张:测试领域主要分功能测试和性能测试。功能测试主要对应用程的功能模块进行测试,测试模块的功能是否运行正常。性能测试主要测试应用程序对负载的响应能力。比如同时有多个客户连接到后台的数据库。我们通过性能测试软件来监测系统运行的情况。比如说记录几百个用户在同一时间使用时响应的时间是多少。当然了,响应的时间越短,说明系统的性能越高。
ERP系统有订单的模块、查询的模块、库存的模块等。我们进行的性能测试其实是模拟真实系统运行的情况。我们尽可能的去模拟真实的场景,使用一些压力测试的工具录制脚本,把实际运行中应用系统的实际情况录制下来。比方说你要下订单。然后我们就使用压力模拟工具,把订单处理的流程录制下来。然后再用压力测试软件对这个录制好的脚本也就是下订单的全过程进行回放。
我们可以录制一个用户的实际操作,在回放的过程中我们会添加系统的压力,测试中我们可以将一个用户模拟成多个同时运行的虚拟并发用户,用这样的方式来产生系统不断上升的负载数量。比如我们同时设几十个并发或者是几百个并发,同时去后台的系统下进行下订单的操作。
测试中的并发数是指在同一时刻应用程序对数据系统产生压力的数量情况。并发跟在线用户数是不一样的概念。我们很多时候是用在线用户数来作为衡量系统性能的指标。而并发数是指在同一时间点上的对系统产生压力的用户。我们有时用100或200在同一时刻的并发用户来做测试,而该一时间点上的这1、2百个用户模拟的压力情况可能相当于成千上万个在线用户,给系统添加压力,这是性能测试的一方面。
另外一方面我们还可以测试很多这种混合的场景如有一些下订单的模块、查询的模块还有一些库存的模块。我们可以把这些场景都录制下来。根据实际的应用程序运行环境中的情况我们来配置压力的比例。比如说我们下订单的实际运行中,订单模块的操作量占30%的并发,查询模块占20%。剩余的是库存模块的系统压力。这样就形成了一个混合场景压力比例。测试是尽可能的去真实模拟应用程序在实际生产过程中的运行的情况,然后对后台系统进行一个不断增加压力来进行一个压力性能的测试。这个情况下得出来你的系统的一个响应时间就是比较接近真实的应用系统中在实际操作中多并发情况下的一个性能指标。
并发数是性能测试中比较重要的一个指标术语,还有一个事务数的概念也是值得我们注意的。事务数中的事物没有一个很统一的定义,在各种测试模拟的场景中,事物都有各自的不同含义,比如数据库中的事务的概念可能是增、删、改的几条语句。几条语句构成了一个事务或者说一句UPDATE的语句就可能构成一个事务。我们这次测试中的事务指的是ERP系统应用中的一个操作概念,这个事务实际上远比上面提到的数据库事务复杂,我们的一个事务中可能包括了很多了这种操作。比方说下订单的这个模块。有可能先去查数据库中的某些数据。然后跟所数据再对数据库中的些字段进行一些insert。update的一些操作。它的一次的事务的操作其实是包含很多的数据库的操作在里边。