性能测试面试题总结
- 格式:docx
- 大小:15.24 KB
- 文档页数:6
测试工程师面试题及答案测试工程师是软件开发领域中非常重要的角色之一。
他们负责验证软件、系统或应用程序的功能、性能和稳定性。
在软件开发的整个生命周期中,测试工程师都扮演着至关重要的角色。
在软件发布之前,测试工程师需要进行全面的测试,以确保软件能够按照预期运行。
以下是一些常见的测试工程师面试题及其答案,希望对准备面试的同学有所帮助。
问题1:请用简短的语言描述测试工程师的职责。
回答:测试工程师的职责是验证软件、系统或应用程序的功能、性能和稳定性。
他们负责编写测试用例、执行测试计划、记录和跟踪缺陷、编写测试报告以及与开发人员合作解决问题。
问题2:请谈谈您的测试流程。
回答:我的测试流程通常分为以下四个阶段:计划、设计、实施和评估。
首先,我会对测试需求进行分析和计划,明确测试目标并编写测试计划。
接下来,我会设计测试用例和测试数据,并进行测试环境的搭建。
在实施阶段,我会执行测试用例,记录和跟踪缺陷,并与开发人员合作解决问题。
最后,我会评估测试结果,生成测试报告,并对测试过程进行总结和改进。
问题3:请解释一下黑盒测试和白盒测试的区别。
回答:黑盒测试是基于软件外部结构和功能的测试方法。
测试人员仅通过软件的输入和输出来评估软件的正确性和完整性,而不考虑内部的实现细节。
白盒测试则是基于软件内部结构和逻辑的测试方法。
测试人员需要了解软件的设计和代码,通过分析内部逻辑来评估软件的正确性和完整性。
简而言之,黑盒测试关注于功能,而白盒测试关注于内部实现和逻辑。
问题4:请说明一下冒烟测试的目的和过程。
回答:冒烟测试的目的是在软件的早期阶段快速评估软件的基本功能和稳定性。
冒烟测试的过程是执行一系列核心功能和关键路径的测试用例,以确保软件的基本功能正常工作。
如果在冒烟测试过程中发现严重的缺陷,则可能会中止测试,并通知开发人员解决问题。
问题5:请谈谈您在缺陷管理方面的经验。
回答:在缺陷管理方面,我通常会使用缺陷跟踪工具,如JIRA 或Bugzilla,来记录和跟踪缺陷。
第1篇一、前言随着科技的飞速发展,软件测试行业在我国逐渐崛起,成为IT行业中的重要分支。
越来越多的企业开始重视软件测试,对测试人才的需求也越来越大。
校招测试面试作为进入测试行业的第一步,其重要性和难度不言而喻。
本文将为大家整理一份校招测试面试题目及解析,帮助大家更好地备战面试。
二、基础知识1. 题目一:请简述软件测试的定义和目的。
解析:软件测试是指通过各种方法和技术,对软件产品进行测试,以发现软件中的错误,保证软件质量,提高软件可用性。
软件测试的目的是确保软件满足需求,满足用户期望,降低风险。
2. 题目二:请列举常见的软件测试类型。
解析:常见的软件测试类型包括:(1)功能测试:验证软件功能是否符合需求规格说明书。
(2)性能测试:测试软件在特定负载下的性能表现。
(3)安全测试:测试软件在安全方面的表现,如防止恶意攻击。
(4)兼容性测试:测试软件在不同平台、操作系统、浏览器等环境下的兼容性。
(5)回归测试:验证软件修改或升级后,原有功能是否受到影响。
3. 题目三:请简述黑盒测试和白盒测试的区别。
解析:黑盒测试和白盒测试的区别主要体现在测试方法、测试依据和测试内容上。
(1)测试方法:黑盒测试主要关注软件功能,不考虑内部实现;白盒测试关注软件内部实现,通过代码审查、静态分析等方法进行测试。
(2)测试依据:黑盒测试依据需求规格说明书;白盒测试依据软件设计文档和代码。
(3)测试内容:黑盒测试关注软件功能;白盒测试关注软件内部逻辑、代码质量。
三、测试用例设计1. 题目四:请简述等价类划分法。
解析:等价类划分法是一种黑盒测试方法,通过将输入数据划分为若干等价类,从每个等价类中选取一个代表值作为测试用例,以达到测试全面性的目的。
2. 题目五:请简述边界值分析法。
解析:边界值分析法是一种黑盒测试方法,通过选取输入数据的边界值作为测试用例,以提高测试覆盖率。
3. 题目六:请简述错误猜测法。
解析:错误猜测法是一种黑盒测试方法,通过测试人员凭借经验或直觉猜测可能存在的错误,并设计相应的测试用例进行验证。
测试⾯试常见⾯试题汇总⼀软件的⽣命周期(prdctrm)计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运⾏与维护(running maintrnacne)测试⽤例⽤例编号 测试项⽬ 测试标题 重要级别 预置条件 输⼊数据 执⾏步骤 预期结果1、问:你在测试中发现了⼀个bug,但是开发经理认为这不是⼀个bug,你应该怎样解决?⾸先,将问题提交到缺陷管理库⾥⾯进⾏备案。
然后,要获取判断的依据和标准:根据需求说明书、产品说明、设计⽂档等,确认实际结果是否与计划有不⼀致的地⽅,提供缺陷是否确认的直接依据;如果没有⽂档依据,可以根据类似软件的⼀般特性来说明是否存在不⼀致的地⽅,来确认是否是缺陷;根据⽤户的⼀般使⽤习惯,来确认是否是缺陷;与设计⼈员、开发⼈员和客户代表等相关⼈员探讨,确认是否是缺陷;合理的论述,向测试经理说明⾃⼰的判断的理由,注意客观、严谨,不参杂个⼈情绪。
等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
2、问:给你⼀个⽹站,你如何测试?⾸先,查找需求说明、⽹站设计等相关⽂档,分析测试需求。
制定测试计划,确定测试范围和测试策略,⼀般包括以下⼏个部分:功能性测试;界⾯测试;性能测试;数据库测试;安全性测试;兼容性测试设计测试⽤例:功能性测试可以包括,但不限于以下⼏个⽅⾯:链接测试。
链接是否正确跳转,是否存在空页⾯和⽆效页⾯,是否有不正确的出错信息返回。
提交功能的测试。
多媒体元素是否可以正确加载和显⽰。
多语⾔⽀持是否能够正确显⽰选择的语⾔等。
界⾯测试可以包括但不限于⼀下⼏个⽅⾯:页⾯是否风格统⼀,美观页⾯布局是否合理,重点内容和热点内容是否突出控件是否正常使⽤对于必须但未安装的控件,是否提供⾃动下载并安装的功能⽂字检查性能测试⼀般从以下两个⽅⾯考虑:压⼒测试;负载测试;强度测试数据库测试要具体决定是否需要开展。
第1篇一、基础知识1. 请简述性能测试的定义和目的。
2. 性能测试通常包括哪些类型?3. 什么是负载测试?请举例说明。
4. 什么是压力测试?请举例说明。
5. 什么是并发测试?请举例说明。
6. 什么是基准测试?请举例说明。
7. 什么是稳定性测试?请举例说明。
8. 什么是可恢复性测试?请举例说明。
9. 什么是配置测试?请举例说明。
10. 请简述性能测试中常见的性能指标,如响应时间、吞吐量、错误率等。
11. 请简述性能测试的流程,包括哪些阶段?12. 请简述性能测试工具的作用和常见工具,如JMeter、LoadRunner等。
13. 请简述性能测试中的瓶颈分析方法和优化策略。
14. 请简述性能测试中的数据采集和分析方法。
15. 请简述性能测试中的性能监控和报警机制。
二、性能测试实践1. 请描述一个实际性能测试项目,包括项目背景、目标、测试工具、测试流程等。
2. 请简述如何制定性能测试计划,包括测试目标、测试场景、测试数据等。
3. 请简述如何设计性能测试用例,包括测试场景、测试数据、测试步骤等。
4. 请简述如何搭建性能测试环境,包括硬件、软件、网络等。
5. 请简述如何执行性能测试,包括测试数据准备、测试执行、结果分析等。
6. 请简述如何分析性能测试结果,包括瓶颈分析、优化策略等。
7. 请简述如何编写性能测试报告,包括测试目的、测试方法、测试结果、优化建议等。
8. 请简述如何利用性能测试工具进行性能测试,如JMeter、LoadRunner等。
9. 请简述如何进行压力测试,包括测试目标、测试场景、测试数据等。
10. 请简述如何进行并发测试,包括测试目标、测试场景、测试数据等。
11. 请简述如何进行基准测试,包括测试目标、测试场景、测试数据等。
12. 请简述如何进行稳定性测试,包括测试目标、测试场景、测试数据等。
13. 请简述如何进行可恢复性测试,包括测试目标、测试场景、测试数据等。
14. 请简述如何进行配置测试,包括测试目标、测试场景、测试数据等。
高级性能测试工程师面试题及答案1.请介绍一下您在性能测试领域的工作经验,以及您在之前的项目中的主要职责。
答:在我的过往工作中,我担任高级性能测试工程师职务超过五年。
其中,我负责规划、设计和执行性能测试计划,确保系统在各种负载下保持稳定性和可靠性。
在一个电子商务平台项目中,我成功调查并解决了潜在的性能问题,通过优化数据库查询和调整服务器配置,将系统响应时间从10秒降低到2秒。
2.在性能测试中,您是如何确定合适的负载模型的?请分享一下您的经验。
答:我首先进行需求分析,了解系统的预期用户数量和行为模式。
接着,我使用负载建模工具模拟真实场景,并根据模型中的参数调整负载。
在过去的项目中,我成功地利用负载测试工具模拟了突发访问峰值,确保系统在高负载情况下稳定运行。
3.在性能测试中,什么是负载均衡?请解释一下,并举例说明在您的项目中如何处理负载均衡。
答:负载均衡是一种通过在多个服务器之间分配工作负载来提高系统性能和可用性的技术。
在一个电商平台项目中,我们使用负载均衡器将用户请求分发到不同的服务器,确保每个服务器都能够处理适量的流量。
这有效地减轻了单一服务器的压力,提高了系统的整体性能。
4.您在性能测试中如何评估系统的响应时间和吞吐量?答:我通常使用性能测试工具来模拟并测量系统在不同负载下的响应时间和吞吐量。
通过分析测试结果,我能够识别潜在的性能瓶颈,并采取相应的措施进行优化。
在一个金融系统项目中,我通过调整数据库索引和优化查询语句,显著提高了系统的响应时间和吞吐量。
5.如何处理在性能测试中发现的性能瓶颈?请分享您的解决方案和实际经验。
答:一旦发现性能瓶颈,我会进行详细的分析,包括系统日志、数据库查询和服务器资源利用率等方面。
然后,我会采取相应的优化措施,可能涉及到代码优化、数据库索引调整、缓存策略等。
在一个大型社交媒体项目中,我成功解决了数据库查询效率低下的问题,通过优化查询计划和引入缓存,显著提升了系统性能。
性能测试面试题(附答案)1、哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)网络注册保存参数2、你如何识别系统瓶颈?根据TPS指数分析(即系统每秒可处理的事务数),系统每秒可处理的事务数是否会随着用户数的增加而增加3、think_time有什么用?思考时间的主要功能如下:1)降低当前运行时压力,缓解对应用服务器所造成的压力2)模拟真实生产用户操作,考察对服务器所造成的影响4.你通常什么时候开始性能测试被测系统的正常业务流程通过,即集成测试通过后。
5.参数化的目的1)减少脚本的大小2)提供不同的值来提高脚本的执行能力,从而更真实地模拟生产环境的数据6、容量测试方法中为什么要以逐步递增的的方式进行虚拟用户的数量随着加载时间的增加而增加,这有助于确定系统响应时间减慢时的确切时间点和确切的用户数量7、假设在测试过程中发现某些事务的响应时间过长,但分析应用服务、数据库服务以及网络都属于正常现象、问题的可能原因1)lr客户端机器是否已无法承载当前运行压力导致lr无法及时获取从服务端返回的信息2)think_time(即思考时间)是否已忽略3)确定当前正在测试的系统架构是否是由在每次测试期间清除缓存引起的8、如何发现应用服务的相关问题?1)通过对一些事务的操作,判断应用程序代码层是否没有调优,导致事务响应事件过长。
2)通过实时监控工具(nmon等)进行监控和分析:a)系统在运行过程其cpu是否稳定运行或cpu耗用是否过高b)在系统运行过程中其内存是否存在内存泄露现象3)打开相应的应用程序日志,分析操作过程中是否存在事务错误,并获取错误原因,查看是否由代码引起原因导致交易错误发生9.如何发现与数据库相关的问题?1)通过运行某些相应的已获取的sql语句,判断是否由于数据库索引所导致的事务响应过长问题出现了2)通过实时监控工具(nmon等)监控分析:a)系统运行过程中CPU是否能稳定运行或CPU消耗过高;b)系统运行期间是否存在内存泄漏。
初、中、⾼级测试⼯程师⾯试题汇总(附答案)【热⾝题】1.为什么选择测试这⾏?因为其具有挑战性和成就感,找⼀些系统隐藏的逻辑漏洞的时候,⾃⼰就⾮常的开⼼。
并且测试需要细⼼和耐⼼,⾃⼰可以很快的分析bug 的来源。
2.请描述下你公司的测试流程?需求分析讨论-确定测试策略-设计测试⽤例-测试⽤例评审-beta测试-uat测试-测试报告【基础题】1.软件测试项⽬从什么时候开始为什么?需求确认开始,因为在需求阶段,测试可以评审需求并进⾏静态测试,减少开发过程中的bug。
2.软件的评审⼀般由哪些⼈员参加?其⽬的是什么?参加⼈员:需求业务⼈员、产品经理、项⽬经理、开发⼈员、测试⼈员;⽬的:查看软件在未正式投⼊运⾏前是否还存在问题。
对于不同软硬件平台能否正常运⾏,是否有与客户理解不⼀致的地⽅,同时可以对⼀些可以改进的地⽅再多加改进。
3.如何设计测试⽤例?什么样⼦的测试⽤例是好⽤例?掌握边界值分析、等价类划分、错误推测等⽅法来设计测试⽤例。
好⽤例是⼀个完备的集合,它能够覆盖所有等价类以及各种边界值;需要从软件功能需求出发,全⾯地,⽆遗漏地识别出测试需求;最好是代码覆盖测试也全⾯的测试。
4.不能发现BUG的测试⽤例不是好的测试⽤例吗?不⼀定,要看情况,如果测试⽤例质量⾼,没有发现bug,说明开发质量⾼。
但⼀般程序都会有bug,如果没有发现BUG,就要思索测试场景是否有遗漏,需求是否理解没到位。
5.测试⽤例需要哪些⼈来评审?产品经理,开发⼈员,测试⼈员,业务需求⼈员。
6.什么是bug?没有实现需求说明书列出的功能,出现了没有需求说明书提到不该出现的事情;实现了多的功能;没有实现应该实现的逻辑。
7.简单概述缺陷报告,并说明包括哪些项?缺陷描述,缺陷的优先级,缺陷的标题,缺陷所属版本号,缺陷所属的功能模块,操作步骤,预期效果,缺陷原因,缺陷所属的开发⼈员。
8.开发⼈员修复缺陷后,如何保证不影响其他功能?重新执⾏测试⽤例,并且针对这个缺陷影响的相关点写新的测试⽤例。
性能测试工程师面试题及答案1.请介绍一下您在性能测试方面的经验和专业背景。
答:我拥有六年的性能测试经验,曾在ABC公司领导一支团队成功完成多个大型项目的性能测试任务。
我的专业背景包括计算机科学硕士学位,为我提供了深厚的理论基础,使我能够更好地理解和应对复杂的性能测试挑战。
2.在性能测试中,什么是负载测试,它的主要目的是什么?答:负载测试是通过模拟用户访问和系统负荷,评估系统在正常和峰值负载下的性能表现。
主要目的是确保系统在各种条件下都能提供可接受的性能水平,包括响应时间、吞吐量等方面。
例如,在电商网站上,通过负载测试可以确保在促销活动期间系统能够处理高并发的用户访问而不崩溃。
3.请详细解释性能测试中的“响应时间”和“吞吐量”的概念。
答:响应时间是用户发起请求到系统返回响应所经历的时间,是衡量系统性能的重要指标。
吞吐量则表示系统在单位时间内能够处理的请求数量。
通过监测这两个指标,我们能够评估系统的性能状况。
例如,一个金融交易系统需要快速的响应时间和高吞吐量,以确保及时处理大量的交易请求。
4.您在性能测试中使用过哪些工具,它们的优缺点是什么?答:我熟练使用LoadRunner和JMeter等工具。
LoadRunner具有强大的脚本录制和分析功能,适用于复杂的企业级应用,但相对昂贵。
JMeter是一个开源工具,适用于小型项目,但在处理复杂场景时可能需要更多的手动配置。
在项目选择工具时,我会根据具体需求和预算综合考虑工具的优缺点。
5.请详细描述一个您成功完成的性能测试项目,包括遇到的挑战和解决方法。
答:在上一份工作中,我们负责对一个电商平台进行性能测试。
挑战之一是模拟真实的用户行为,因为平台具有多种交互方式。
我们采用了混合负载测试,结合业务日志和用户行为分析,成功模拟了复杂的用户场景。
另一个挑战是在高负载下发现性能瓶颈。
通过分析数据库索引、优化代码和增加服务器资源,我们最终成功提高了系统的性能,确保了在高峰期的稳定运行。
第1篇1. 请简述性能测试的目的和重要性。
2. 请列举几种常见的性能测试指标,并解释它们的意义。
3. 请说明负载测试和压力测试的区别。
4. 请简述如何进行性能测试环境的搭建。
5. 请描述在性能测试过程中,如何发现性能瓶颈。
6. 请简述如何对性能测试结果进行分析。
7. 请说明如何根据性能测试结果对系统进行优化。
8. 请描述如何进行分布式性能测试。
9. 请简述如何进行Web应用的性能测试。
10. 请描述如何进行数据库性能测试。
11. 请简述如何进行内存性能测试。
12. 请简述如何进行CPU性能测试。
13. 请简述如何进行网络性能测试。
14. 请简述如何进行磁盘IO性能测试。
15. 请简述如何进行并发性能测试。
16. 请简述如何进行缓存性能测试。
17. 请简述如何进行Web服务性能测试。
18. 请简述如何进行移动应用性能测试。
19. 请简述如何进行虚拟化性能测试。
20. 请简述如何进行云计算性能测试。
21. 请简述如何进行性能测试的自动化。
22. 请简述如何使用JMeter进行性能测试。
23. 请简述如何使用LoadRunner进行性能测试。
24. 请简述如何使用Gatling进行性能测试。
25. 请简述如何使用Yammer进行性能测试。
26. 请简述如何使用VisualVM进行性能测试。
27. 请简述如何使用Perfmon进行性能测试。
28. 请简述如何使用Wireshark进行性能测试。
29. 请简述如何使用Fiddler进行性能测试。
30. 请简述如何使用Xdebug进行性能测试。
31. 请简述如何进行性能测试的缺陷管理。
32. 请简述如何进行性能测试的持续集成。
33. 请简述如何进行性能测试的持续交付。
34. 请简述如何进行性能测试的文档编写。
35. 请简述如何进行性能测试的团队协作。
36. 请简述如何进行性能测试的项目管理。
37. 请简述如何进行性能测试的风险管理。
38. 请简述如何进行性能测试的质量管理。
第1篇一、基础知识1. 什么是软件测试?请简述软件测试的目的和重要性。
解析:软件测试是为了发现软件中的错误,验证软件是否满足需求规格说明书,确保软件质量的一种活动。
软件测试的目的是确保软件产品能够正常运行,满足用户需求,降低软件风险,提高软件质量。
软件测试的重要性在于,它可以提高软件的可靠性、可用性和安全性,降低软件维护成本,提高用户满意度。
2. 请列举常见的软件测试类型。
解析:常见的软件测试类型包括:(1)功能测试:验证软件功能是否符合需求规格说明书。
(2)性能测试:评估软件在特定负载下的性能表现。
(3)安全性测试:检测软件的安全性漏洞,确保用户数据安全。
(4)兼容性测试:验证软件在不同操作系统、浏览器、硬件等环境下的兼容性。
(5)用户体验测试:评估软件的用户界面、操作流程等是否友好。
(6)回归测试:在软件更新或修改后,重新测试已测试过的功能,确保修改没有引入新的错误。
3. 请简述黑盒测试和白盒测试的区别。
解析:黑盒测试和白盒测试的区别主要在于测试方法、测试依据和测试目的。
(1)黑盒测试:不关心软件内部实现,只关注软件的功能和外部行为。
测试人员根据需求规格说明书设计测试用例,通过输入和输出验证软件功能是否正确。
(2)白盒测试:关注软件内部实现,测试人员需要了解软件的内部结构、代码逻辑等。
测试人员根据代码设计测试用例,检查代码的正确性、健壮性和性能。
4. 请简述静态测试和动态测试的区别。
解析:静态测试和动态测试的区别主要在于测试时间和测试方法。
(1)静态测试:在软件运行之前进行,通过检查代码、设计文档等静态资源来发现错误。
静态测试方法包括代码审查、静态分析等。
(2)动态测试:在软件运行过程中进行,通过运行程序并观察其行为来发现错误。
动态测试方法包括单元测试、集成测试、系统测试等。
二、测试用例设计1. 请简述等价类划分法的原理和步骤。
解析:等价类划分法是一种常用的测试用例设计方法,其原理是将输入数据划分为若干个等价类,从每个等价类中选取一个代表性的值作为测试用例。
1. 什么是负载测试?什么是性能测试?负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。
此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
性能测试主要使用场景测试软件系统的性能是否满足生产性能的要求,包括负载测试,强度测试,数据库容量测试,基准测试以及竞争(并发,用户)测试。
2. 性能测试包含了哪些测试(至少举出3 种)包括负载测试,强度测试,数据库容量测试,基准测试以及竞争测试3. 简述性能测试的步骤第一步:需求分析、计划测试,设计测试用例第二步:测试设计和开发(测试脚本录制及调试,测试场景设计)第三步:测试执行(测试环境搭建,场景部署,场景执行,监视场景)第四步:测试结果分析,性能问题定位,测试报告评估4. 简述使用Loadrunner 的步骤制定性能测试计划-》使用Vuser录制调试脚本VuGen-》用Loadrunner Controller 设置场景- 》运行场景- 》监视场景by Loadrunner online runtime 等-》分析测试结果5. 什么时候可以开始执行性能测试?功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。
由哪些部件组成?Virtual User Generator- 生成用于“ Controlier ”部署的Vusers LoadRunner Controlier- 产生压力和搜集测试结果数据LoadRunner Analysis- 通过图表分析工具来编译和显示测试结果7. 你使用LoadRunner 的哪个部件来录制脚本?使用Virtual User Generator 录制测试脚本的哪个部件可以模拟多用户并发下回放脚本?LoadRunner 的Controller 组件。
9. 什么是集合点?设置集合点有什么意义?Loadrunner 中设置集合点的函数是哪个? 在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;集合点可以在服务器上创建密集的用户负载,使LoadRunner 能够测试服务器在负载状态下的性能。
设置集合点函数:lr_rendezvous("Meeting") ;么是场景?场景的重要性有哪些如何设置场景?场景用于模拟用户实际业务操作;LoadRunner 中场景有手工场景和面向目标的场景。
设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成器。
11. 请解释一下如何录制web 脚本?利用Virtual User Generator 录制测试脚本,录制步骤:1、选择合适的协议-Web(Http/Html),2、设置录制选项( HTML-based Script/URL-based Script )3、开始录制12. 为什么要创建参数?如何创建参数?A12:LoadRunner 在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不同的值进行循环输入。
这时,在LoadRunner 中就可以进行参数化设置,以使用多个不同的值提交应用请求。
【参数化】:使用指定数据源中的值来替换脚本录制生成的语句中的参数。
【参数化好处】• 减少脚本的大小• 提供使用不同的值执行脚本的能力,更加真实的模拟现实应用。
【参数化步骤】• 用参数替换Vuser 脚本中的常量值• 为参数设置属性和数据源13. 什么是关联?请解释一下自动关联和手动关联的不同。
A13:【关联的定义】简单的说:就是把脚本中某些写死 (固定)的数据,转变成动态的数据,或者说将前面语句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。
【需要关联的前提条件】:客户端需要从服务器端返回数据中获取部分数据,并将这些部分数据处理后作为自己下一次请求的一部分发出。
【自动关联与手工关联的不同】:自动关联是在脚本录制过程中,VuGen 会根据已经制定好的规则,自动找出需要关联的值或脚本录制完成后,执行脚本一次,通过Correlation Studio 自动找出需要关联的数据,并建立关联;而手动关联是需要录制两份相同业务流程的脚本,输入的数据要相同,利用WinDiff 工具,找出两份脚本之间不同之处,也就是需要关联的数据,再通过web_reg_save_param 函数手动建立关联,将脚本中用到关联的数据参数化。
14. 你如何找出哪里需要关联?请给一些你所在项目的实例。
A14:1、录制两份相同业务流程的脚本,输入的数据要相同2、利用WinDiff 工具,找出两份脚本之间不同之处,也就是需要关联的数据3、通过web_reg_save_param 函数手动建立关联,将脚本中用到关联的数据参数化。
通过录制两份脚本,进行对比,可知jsessionid 、sap-ext-sid 、sap-wd-cltwndid 、sap-wd-tstamp 需要进行关联。
15. 你在哪里设置自动关联选项?录制选项中进行设置16. 哪个函数是用来截取虚拟用户脚本中的动态值?(手工管联) A16:Web_reg_save_param 函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,需要找出动态数据的左、右边界字符串。
1. 函数原型:int web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);2. 参数说明:ParamNam存放动态数据的参数名称List of Attributes :其它属性,包含Notfound 、LB、RB、RelFra meID 、Sea rch 、ORD、SaveOffset 、Convert 、SaveLen。
17•你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?在脚本运行调试成功后应关闭日志。
创建发送函数和消息日志时用标准日志,创建警告和其他信息是用扩展日志。
18.你如何调试LoadRunner脚本?在VuGen设置断点breakpoints ,然后使用单步跟踪Run Step by Step ,输出调试日志19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。
Give me few functions you wrote in your previous project? - Before we create theUser Defined functions we need to create the externallibrary (DLL) with the function. We add this library to VuGen bin directory. Oncethe library is added then we assign user defined function as a parameter. The function should have the following format:__declspec (dllexport) char* <function name>(char*, char*)lr_load_dll("");Examples of user defined functions are as follows:GetVersion, GetCurrentTime, GetPltform are some of the user defined functions used in my earlier project.20. 在运行设置下你能更改那些设置?pacing :每个虚拟用户脚本包括三个部分:vuser_init, Run (Actions), vuser_end. 当你运行脚本的时候你能通知,虚拟用户重复执行run 部分,每一个重复做为一个iteration.注意:vuser_init 和vuser_end 部分是不被重复的。
Think Time Settings :虚拟用户think time 仿效一个真实用户在活动中等待的时间,例如:当一个用户从服务器接受数据的时候,在响应前这个用户需要等待数秒来接受数据,这个被耽搁的时间就是think time 。
Error Handling :你能指定一个虚拟用户在脚本执行期间如何处理错误,默认的,当一个虚拟用户发现一个错误的时候,它会随着下一次重复继续下去,你能使用这个设置来通知虚拟用户当发生错误的时候是否继续执行脚本。
Run Logic :迭代次数21. 你在不同的环境下如何设置迭代?A21:在“ Run Time Settings ”中设置22. 你如何在负载测试模式下执行功能测试?A22:在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的负载量下,仍然可以正常运行,我一般进行核心功能操作,验证核心功能运行是否正常。
23. 什么是逐步递增?你如何来设置?A23:虚拟用户数随着负载时间逐渐增加,可以帮助确定系统响应时间减慢的准确时间点。
可以在“加压”选项卡中进行设置: 如下图所示,将设置更改为: “每30 秒启动 2 个Vuser”24. 以线程方式运行的虚拟用户有哪些优点?A24: 以线程方式运行的虚拟用户,在默认情况下,Controller 为每50 个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。
25. 当你需要在出错时停止执行脚本,你怎么做?取消运行设置中的“ Continue on error ”复选框。
或者使用lr_abort 函数。
26. 响应时间和吞吐量之间的关系是什么?A26: 当系统吞吐量未达到系统处理极限时,系统性能不会衰减,交易平均响应时间一般也不会递增,当系统达到吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故交易平均响应时间一般会递增。
27. 说明一下如何在LR中配置系统计数器?A27:以windows资源监控为例,可右键点“添加度量”,输入系统IP、选择平台类型,确定即可,详细参加LR自带操作手册A_A。