《客户关系管理计划系统性能教学教案.doc》由会员分享,可在线阅读,更多相关《客户关系管理计划系统性能教学教案.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、客户关系管理系统性能测试课题名称客户关系管理系统性能测试系/专 业班 级学 号学生姓名指导教师:目录第一章 测试计划31.1 人力资源31.2 测试环境31.3 业务模型创建31.4 场景模型创建41.5 测试数据准备6第二章 测试用例7第三章 执行测试113.1 脚本开发113.2 场景设计153.3 计数器设置19第四章 结果分析22第五章 测试结论24第一章 测试计划1.1 人力资源性能测试作为测试的一部分工作,根据测试计划,性能测试允许的时间为25个工作日,计划需要一个人进行测试。1.2 测试环境在进行测试前,必须先搭建好测试平台。服务器按章操作系统为Windows 2003系统,其中
2、数据库和应用服务器安装在同一台机器上。测试机安装的操作系统为Windows XP系统,因为测试的并发用户最多为100个,其中Controller和负载机为同一台及其。测试机和服务器在同一个局域网内。详细的测试机与服务器软硬件配置,见表1-1所示;设备硬件配置软件配置数据库服务器应用服务器PC机(一台)CPU:Inter Xeon X3200 2.4GHz内存:2.0GB硬盘:300GBWindows 2003MySQL Apache控制器负载机PC机(一台)CPU:Inter Celeron 3.06GHz内存:512MB 硬盘:80GBWindows XP LoadRunner9.1IE 6
3、.0Microsoft Office1.3 业务模型创建测试环境准备好之后要对业务模型进行设计,知道录制脚本时的业务流程及业务背景,如表1-2所示;指标种类业务模型登陆100个虚拟用户同时并发测试业务联系人准备12000条联系人记录进入联系人管理界面的并发用户数位25个增联系人活动并提交的并发用户数位25个客户准备2400条客户记录进入客户界面的并发用户为25个新增客户记录并提交的并发用户数位25个商机准备2400条商机记录进入商机管理界面的并发用户为25个新增商机管理界面的并发用户为25个线索准备12000条销售活动记录进入线索管理界面的并发用户25个新增线索并提交的并发用户25个 表1-2
4、 业务模型1.4 场景模型创建业务模型是用来规范业务如何活动的。那么场景又如何控制呢?这就需要创建一个场景模型。什么叫场景模型?场景模型用来约束和规范业务活动时的场景环境,指导场景如何设计。也就是说,如果没有定义好场景模型,那么就无法很好地去定义Control部分的场景设计或者测试出来的结果和真实的结果还存在很大的差异。这几个模块具体的场景模型,如表1-3所示;表1-3 场景模型:指标种类场景模型业务登陆1. 启用脚本的集合点2. 每5秒加载一个虚拟用户,虚拟用户加载完成之后,场景持续运行5分钟,结束后,每5秒释放一个虚拟用户3. 使用IP欺骗,IP欺骗新建个IP地址4. 添加Windows计
5、数器5. 监视虚拟用户运行日志文件联系人1. 启用脚本的集合点2. 每5秒加载一个虚拟用户,虚拟用户加载完成之后,每5秒释放一个虚拟用户3. 使用IP欺骗,IP欺骗新建个IP地址4. 添加Windows计数器5. 监视虚拟用户运行日志文件客户1. 启用脚本的集合点2. 每5秒加载一个虚拟用户,虚拟用户加载完成之后,每5秒释放一个虚拟用户3. 使用IP欺骗,IP欺骗新建个IP地址4. 添加Windows计数器5. 监视虚拟用户运行日志文件商机1. 启用脚本的集合点2. 每5秒加载一个虚拟用户,虚拟用户加载完成之后,每5秒释放一个虚拟用户3. 使用IP欺骗,IP欺骗新建个IP地址4. 添加Wind
6、ows计数器5. 监视虚拟用户运行日志文件线索1. 启用脚本的集合点2. 每5秒加载一个虚拟用户,虚拟用户加载完成之后,每5秒释放一个虚拟用户3. 使用IP欺骗,IP欺骗新建个IP地址4. 添加Windows计数器5. 监视虚拟用户运行日志文件1.5 测试数据准备完成以上工作后,接下来就要为业务模型准备数据,一般准备数据可以从以下几个方面入手:1) 数据可以来自于以前的历史数据。如登陆模块,测试10个用户同时登陆的情况,如果已有10个真实的用户账号信息,那么在准备数据时,就可以直接调用这些现有的数据。2) 手动添加准备数据。如登录模块,如果现在没有10个现成的真实用户账号信息,那么就需要自己手
7、动去创建,当然创建的方式就有很多种了,可以使用LoadRunner进行创建,也可以写一段小程序去创建,当然还可以选择手动创建。但是当数据量很大时,选择手动创建就是一件很困难的事,如测试BOSS(Business & Operation Support System)系统,几千个虚拟用户并发,如果手动去准备这些数据就很麻烦。3) 数据以何种形式调用。如登陆模块的这10个账号信息,在测试过程中如何调用,这里会出现两种不同的情况。一是文本形式,文本形式有一个缺点是,LoadRunner参数列表中最多允许100行参数 ,那么如果参数很多就不能用这种方式了,二是数据库的方式,如果大量参数要被调用的话,就
8、应选择数据库的形式,因为数据库形式没有受记录的限制。各模块数据准备情况,见表1-4。表1-4 准备数据指标种类准备数据登陆准备好100个正确的用户账号信息业务联系人准备好12000条联系人记录客户准备好2400条客户记录商机准备好2400条商机记录线索准备好12000条线索记录 这些数据都选择loadRunner生成,100个用户账号信息存储在数据库中,以方便参数化时调用。第二章 测试用例根据测试计划,设计了包括用力编号、测试目的、开发用户数、模拟用户行为和预期结果五大部分的测试用例。登陆用力编号LI_001测试目的测试100个虚拟用户并发时,系统登陆响应时间并发用户数100个模拟用户行为1.
9、 进入登陆界面2. 输入用户名和密码,点击登陆预期结果系统登陆的响应时间不能超过5秒进入联系人管理界面用力编号TM_001测试目的测试进入联系人管理界面活动,系统进入联系人管理界面的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“联系人管理”按钮,进入联系人管理界面预期结果系统处理进入联系人管理界面响应时间不能超过5秒新增联系人用力编号TM_002测试目的测试提交新增联系人活动,系统提交的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“联系人管理”按钮,进入联系人管理界面4. 在联系人管理界面,
10、点击“新增联系人5. 填写新增联系人信息,并提交”预期结果系统处理提交新增联系人信息的响应时间不能超过5秒进入客户管理界面用力编号CL_001测试目的测试进入客户界面活动,系统进入客户界面的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“客户管理”按钮 预期结果系统处理进入客户管理界面响应时间不能超过5秒新增客户记录用力编号CL_002测试目的测试提交客户记录,系统提交客户记录的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“客户管理”按钮4. 在客户管理界面,点击“新增客户”按钮5. 填写新增
11、客户信息,并提交 预期结果系统处理提交新增客户信息响应时间不能超过5秒进入商机管理界面用力编号BC_001测试目的测试进入商机管理界面活动,系统进入客户界面的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“商机管理”按钮 预期结果系统处理进入商机管理界面响应时间不能超过5秒新增商机记录用力编号BC_002测试目的测新增商机记录,系统新增商机的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“商机管理”按钮 4. 再去爱商机管理界面,点击“新增商机”按钮5. 填写新增商机信息,并提交预期结果系统处理
12、新增商机响应时间不能超过5秒进入线索管理界面用力编号TH_001测试目的测试进入线索管理界面活动,系统进入线索界面的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“线索管理”按钮 预期结果系统处理进入线索管理界面响应时间不能超过5秒新增线索记录用力编号TH_002测试目的测试提交线索管理界面活动,系统新增线索界面的响应时间并发用户数25个模拟用户行为1. 进入登陆界面2. 输入用户名和密码3. 进入首页,点击“线索管理”按钮 4. 在线索管理界面,点击“新增线索”按钮5. 险些新增线索信息,并提交预期结果系统处理提交新线索响应时间不能超过5秒第
13、三章 执行测试3.1 脚本开发根据业务模型和场景模型可以开始开发测试脚本,主要涉及到测试脚本实现过程和脚本的结构。虚拟用户脚本的开发情况见表3-1表3-1 虚拟用户脚本开发情况用例编号用例名称开发情况LI_001并发登陆在脚本中对用户名和密码进行参数化,参数调用是通过读取数据库中的数据来获得,设置文本检查点,检查登陆的用户名是都正确TM_001进入联系人管理界面该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发联系人管理界面操作TM_002新增联系人该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发提交新增联系人活动操作CL_001进入客户管
14、理界面该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发进入客户管理界面操作CL_002新增客户记录该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发新增客户记录操作BC_001进入商机管理界面该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发进入商机管理界面操作BC_002新增商机该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发新增商机记录操作TH_001进入线索管理界面该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发进入线索管理界面操作TH_002新增线索记
15、录该脚本和LI_001合并,在LI_001登陆后,其中有25个虚拟用户进行并发新增线索操作1. 登陆进入Loadrunner主界面,如图3-1所示;图3-1 LoadRunner点击“Create/Edit Scripts”,启用后新建一个用户脚本,因为我们要测试的是Web应用所以如下所示,选择Web(HTTP/Html)协议,如图3-2所示; 图3-2 Web(HTTP/Html)协议在录制脚本中定义一个集合点“并发登陆”,用来保证虚拟用户真的进行了并发登录操作。定义一个事务“提交登陆”,这样来统计登陆所花费的时间。添加文本检查点,检查登陆的用户名是否正确。所有代码都放在Action部分。并
16、发登陆实例的脚本结构如图3-3所示。图3-3 登陆用例脚本结构对登陆的用户名进行参数化,将参数化的文件放在一个专门管理参数化数据的文件夹中,将参数列表中读取参数的路径由绝对路径更改为相对路径。在这里并未对密码进行参数化,为了测试方便,在准备数据时,用户名密码统一设置为“Admin”。故不需要对密码进行参数化。2. 进入联系人管理界面 在进入联系人管理界面的脚本中,只需对登陆的用户名进行参数化,这里没有对密码进行参数化,因为所有用户名、密码都是一样的。设置集合点,确保所有虚拟用户并发进入联系人管理界面。其脚本结构图,如图3-4所示。图3-4 进入联系人管理界面3. 新增联系人信息 新增联系人脚本
17、是最重要的脚本之一。录制完成脚本之后,对脚本进行回放,回放后进入系统查看是否已添加脚本中的新增联系人信息,此时发现,该脚本中新增用户信息并未被添加(录制脚本使用的登录用户名为test1,添加的联系人姓名为hehel,脚本调试过程中对登陆用户名进行参数化,参数内容为test1和test2),即用户test2中并没有联系人hehel的信息,这说明脚本出现问题。这时分析回放日志,但并未发现异常日志,这时一种猜测是脚本应该需要关联,前面讲了脚本关联的几种方法,下面进行以下分析处理: 1)使用两个用户test1 和test2 分别录制业务流程一样的脚本。 2)再使用LoadRunner自带的WDiff工
18、具比较两个脚本,此时发现在提交新增联系人信息的过程中“Name=last_name”的内容不一致,如图3-5所示。图3-5 WDiff比较脚本 这说明每次提交一个新增联系人信息时,“Name=last_name”的值是服务器分配的,并且每次的值都不一样,这就说明需要对该ID进行关联,接着找到需要关联ID的左右边界,手动创建一个关联规则,重新录制脚本即可,关联后代码如图3-6所示。图3-6 脚本关联关联后再次进行回放,发现admin下面还是没有添加那个联系人,这说明脚本还是有问题,但实在是想不出哪里有问题,然后手动用admin这个用户名登陆系统,添加刚才的联系人,结果提示:“存在同名的联系人,是
19、否正确添加”。到这里说明脚本已经成功添加了联系人,只是在联系人列表中未看到添加的联系人信息,如图3-7所示。图3-7 联系人列表这说明脚本在处理业务流程时已经出现问题,接下来应该分析添加联系人的业务流程,添加联系人界面如图3-8所示。图3-8 添加联系人经过分析发现,在提交新增联系人信息时,有一项“负责人”一直都是当前的用户名,再看一下联系人列表中的“负责人”栏,只有当前负责人添加的联系人信息才会显示出来,而test2用户下其实是添加了hehel这个联系人的,之所以看不到是因为在脚本运行的时候“负责人”项一直都是test1,原因找到了,最后只需要对“负责人”项进行参数化,并且负责人应该和登陆用
20、户保持一致,但问题是不知道脚本中哪一项是负责人信息,又没有其他的技巧,后来经过多次手动试验一项一项的排除后才找到了“负责人”项在脚本的位置,下面是修改后的脚本,如图3-9所示。图3-9 对负责人的值进行参数化3.2 场景设计场景设计主要是对Controller(控制器)进行设置,设置脚本运行时的环境。这里只对登陆、进入联系人管理界面和新增联系人三个模块进行详细的描述,其他的模块都大同小异,在此不进行详细的描述。 1.登陆 这里场景组设置10个虚拟用户,如图3-10所示。图3-10 场景组设计场景策略的设置,在脚本运行时对所有的虚拟用户进行初始化,每5秒加载一个虚拟用户,虚拟用户加载完成后,持续
21、运行5分钟,运行结束后每5秒释放一个虚拟用户,直到所有用户释放完成,如图3-11所示。图3-11 场景策略设置 启动IP欺骗功能,脚本中所有集合点都设置为使用状态,如图3-12所示。图3-12集合点设置 2.进入联系人管理界面 场景组设置10个虚拟用户,如图3-13所示。图3-13场景组设置 和登录模块一样,负载发生器没有进行设置。 场景策略设置,在脚本运行时对所有的虚拟用户进行初始化,每5秒加载一个虚拟用户,虚拟用户加载完成后,持续运行5分钟,运行结束后每5秒释放一个虚拟用户,直到所有虚拟用户释放完成,如图3-14所示。图3-14 场景策略设置 启动IP欺骗功能,脚本中所有集合点都设置为使用
22、状态,如图3-15所示。图3-15 集合点设置 3.新增联系人管理信息 场景组设置10个虚拟用户,如图3-16所示。图3-16场景组设置 场景策略设置,在脚本运行时对所有的虚拟用户进行初始化,每5秒加载一个虚拟用户,虚拟用户加载完成后,持续运行5分钟,运行结束后每5秒释放一个虚拟用户,直到所有虚拟用户释放完成。如图3-17所示。图3-17场景策略设置 启动IP欺骗功能,脚本中所有集合点都设置为使用的状态,如图3-18所示。图3-18集合点设置3.3 计数器设置计算器设置主要是设置在场景运行时,需要监控那些资源。在这里所有的脚本都对Windows资源和数据库服务器进行监控。这里以登录模块为例,其
23、他的模块设置一致。1.Windows计数器添加windows 计数器,具体如何添加在前面讲述过,这里就不再详细描述,监控的对象为需要监控的某台服务器(数据库服务器或应用服务器的Windows资源),当然因为这里两个服务器都安装在同一台机器,不存在这些之分。Windows资源计数器如图3-19所示。图3-19 Windows资源监控图 2.MySQL数据库计数器 MySQL数据库计数器的添加方式与Windows计数器的添加放肆一样。被监控的机器为数据库服务器。MySQL数据库计数器如图3-20所示。图3-20 MySQL数据库计数器 在添加数据库计数器时,有时场景状态栏输出窗口会提示如图3-20
24、所示的错误信息,如图2-21所示;图3-21 数据库计数器添加报错 出错的原因是计数器的这些信息和Windows的这些信息名称不相符引起的,有时候在Windows计数器中也会出现。出错后这些指标的值LoadRunner无法获取。但是为什么与Windows资源的名称不相符就会报错,并且没有值显示呢?原因是因为LoadRunner的这些计数器的值其实不是自己创建的,而是从Windows系统中调用出来的,故如果名称不一样就无法从 系统中读到这些指标的值,这样这些指标的值就无法被Loadrunner显示出来,场景状态栏就会弹出错误提示信息。 Windows操作系统内部监视器如图3-22所示。图3-22
25、 Windows操作系统监视器 Windows操作系统监视器也可以添加计数器,这和LoadRunner添加的计数器如出一辙。所以其实这些指标并不是LoadRunner自己去创建的,而是直接从Windows操作系统中“挖过来的”。3.4 场景监视 在场景运行过程中必须对场景进行监控,通过监控场景运行时的情况来获得一些信息,这样有利于对性能测试结果进行分析,以下几个方面的信息需要监控。在这里需要监控场景组中所有虚拟用户运行的情况,同时也可以对虚拟用户运行的情况进行控制,如图3-23所示。图3-23场景组中虚拟用户运行的情况 同时还需要监视虚拟用户组中每个虚拟用户运行的情况,并且一定要观察日志文件的
26、情况,如图3-24所示。图3-24 监视虚拟用户组运行的情况和日志文件监视场景状态图中信息的情况,最重要的是关注错误事务的情况,如图3-25所示。图3-25 监视场景运行状态图如果在运行过程中场景状态出现Errors的信息,那么一定要查看输出对话框错误信息的情况,可以帮助调试脚本和分析结果,如图3-26所示。图3-26 监视输出对话框的提示信息1. 监视数据库在数据图部分主要监视5个视图的变化(正运行虚拟用户数、事物的响应时间、每秒点击率、Windows计数器和MySQL计数器),如图3-27所示。图3-27监视数据图的信息第四章 结果分析1.登陆场景是模拟100个虚拟用户并发登陆,当虚拟用户
27、增加到50个时,每加载一个虚拟用户时,场景状态栏的失败事务数和错误信息就在增多,如图4-1所示。这说明当加载到50个虚拟用户后,服务器无法处理客户端的请求。图4-1 失败事务和错误信息 接下来分析平均事务响应时间,如图4-2所示。平均事务响应时间一直在增加,也同样说明服务器无法处理客户端的请求,事务一直无法处理完成。到这里可以得到结论应该是服务器已经出现问题,但还不明确是什么原因导致的。图4-2 平均事务响应时间 再看一下Windows计数器捕捉到的数据,可以看到CPU的使用率达到100%,内存也存在问题,但是网络没有问题,这说明服务器的硬件配置无法处理100个虚拟用户并发登陆,硬件平台成为性
28、能瓶颈。为了验证这个判断,可以在脚本运行过程中,手动登陆一次试一下,结果发现系统几乎无法动弹。这说明判断是正确饿的,系统硬件资源成为系统性能的瓶颈。要解决这个问题,必须优化系统配置,否则系统无法处理100个虚拟用户并发登陆。在这里是因为进行实例讲述,不方便去优化系统配置,但可以降低并发用户数,测试35个虚拟用户并发的情况。在35个虚拟用户时, CPU 的使用率还是几乎达到100%,内存Page/sec的指标超过80,说明硬件配置在35个虚拟用户并发登陆时,还不是最好的,但是并没有失败的事务,这说明处理35个虚拟用户并发登陆时没有任何影响, 在这里就不再继续测试下去了,有兴趣的朋友可以自己试试。
29、通过上面的结果可以得知,系统无法处理100个虚拟用户同时并发登陆,在使用50个虚拟用户并发登陆时,虽然没有失败的事务,但是事务的处理时间过长,平均时间大概在60秒。这是因为服务器的硬件配置引起的。2.进入联系人管理界面 从上图可以看到平均时间在33.188秒,这个时间应该不是很确切,从曲线图中可以看到大概是在40秒,但不管哪个时间,这个平均时间显示是太长了,这样的系统性能不能让人满意。3.新增联系人场景运行完成后,首先分析平均事务响应时间,平均事务响应时间为15.893秒,这个时间也是很长的一个时间,并且平均事务响应时间像波浪一样有规律的出现,该页面是在新增加一条联系人记录并保存后进入的页面,
30、本来应该是显示当前添加的信息人信息,但在试验过程中,添加联系人后,系统无法从数据库只能够读取该数据库,导致页面出错,这就是为什么平均事务响应时间达到15.893秒的原因,同时也可以解释为什么平均事务项波浪一样。因为在新增联系人时,这个页面有时访问成功,有时访问不成功。第五章 测试结论每个模块的测试结果如下:1.登陆登陆模块,服务器当前的配置无法处理100个虚拟用户并发的活动,测试50个虚拟用户并发时,发现事务都能被成功的处理,但是登陆的时间过长,平均时间为60秒,系统资源也超过安全指标,但应用服务器正常,可以通过优化服务器的配置来提高性能。2.进入联系人管理界面进入联系人管理界面模块,在25个虚拟用户并发时,平均事务响应时间在40秒,同时网络传输时间明显过长,系统资源使用超过安全指标,再试验20个虚拟用户并发,发现平均事务响应时间为5秒,网络传输也正确。这说明通过调优系统配置可以提高性能。3.增加联系人25个虚拟用户并发,平均事务响应时间为15.893秒,服务器无法处理25个虚拟用户并发,有页面访问出错的现象,主要可以通过调节系统配置来优化性能,与应用服务器、数据库服务器的关系不大。