loadrunner 性能测试基础文档
### LoadRunner性能测试基础知识 #### 一、LoadRunner简介与性能测试基础概念 LoadRunner是一款由Micro Focus公司推出的性能测试工具,主要用于评估软件系统在实际使用中的性能表现,特别是对于那些需要承受高并发访问的应用系统而言,LoadRunner能够帮助开发者和测试人员模拟真实的用户行为,从而确保软件产品的稳定性和可靠性。 #### 二、测试用例与命名规范 测试用例的编写是性能测试的基础之一。正确的命名规范有助于提高测试用例的可读性和管理效率。根据提供的部分内容,我们可以总结出以下几点: 1. **测试用例命名规范**: - 示例命名规则:“功能+场景序号”,例如“登录场景01”。 - 这种规范化的命名方式便于识别和维护测试用例。 #### 三、测试场景的设计与描述 测试场景的设计是性能测试的关键环节,它直接影响到测试的有效性和准确性。一个完整的测试场景通常包含以下几个要素: 1. **场景描述信息**:包括场景名称、场景命名和场景描述。 - **场景名称**:遵循“功能+场景+序号”的格式,例如“登录场景01”。 - **场景命名**:由六个部分组成,包括场景拼音首字母、场景编号、性能测试类型拼音前两个字母、场景名称拼音首字母、运行虚拟用户数+Vu+运行时间长度和单位(分钟或小时)。这种命名方式可以帮助快速理解场景的核心特征。 - **场景描述**:详细描述了该场景所涉及的业务组合、运行的虚拟用户数量、运行时间以及用户加载和释放模式等关键信息。 #### 四、数据分析与瓶颈定位 数据分析是性能测试过程中的一个重要环节,通过对测试结果的分析,可以有效地发现系统的瓶颈所在,进而优化系统性能。具体做法包括: 1. **合并图表定位瓶颈**: - 通过将不同类型的图表进行合并,例如将每秒点击次数与平均事务响应时间的图表合并在一起,可以帮助更直观地看出两者之间的关系,从而定位可能导致性能问题的因素。 - 合并后的图表需要共享相同的X轴,而左侧Y轴显示当前图的数据(如每秒点击次数),右侧Y轴则显示合并图的数据(如平均响应时间)。 2. **结果命名规范**: - 结果的描述信息应包括结果名称、结果命名和结果描述。 - **结果名称**:采用“场景名称+结果+执行次数”的形式,例如“登录场景01结果01”。 - **结果命名**:由三个部分组成,即结果拼音首字母、对应的场景命名以及该场景执行的次数。 - **结果描述**:详细记录了结果信息对应的场景以及监控的服务器相关信息。当使用LR之外的工具(如NMON、系统自带的命令或其他第三方工具)监控服务器性能时,也应明确指出监控对象及相关信息。 #### 五、LoadRunner常见问题及解决方案 1. **解决由设置引起的运行失败问题**: - 问题:链接超时、页面资源下载时间超过LoadRunner默认值导致的运行失败。 - 解决方案:通过调整LoadRunner的设置来解决此类问题,具体步骤如下: - 设置场景时点击【run-timesetting】-【run-timesettingforscript】-【HTTPproperties】-【preferences】-【option】-【advancedoptions】-【HTTP-requestconnecttimeout(sec)】、【HTTP-requestreceivetimeout(sec)】、【stepdownloadtimeout(sec)】将链接超时增大至600秒。 - 通过这种方式,可以有效避免因链接超时导致的运行失败问题。 2. **实现对服务器系统资源的监控**: - 使用LoadRunner内置的系统资源监控器可以实时监控场景运行期间服务器资源的使用情况,帮助识别性能瓶颈。 #### 六、性能测试流程概述 虽然未提供具体的性能测试流程细节,但通常情况下,性能测试流程包括以下几个步骤: 1. **需求分析**:确定测试目标和范围。 2. **设计测试场景**:基于需求制定测试场景。 3. **脚本开发**:根据测试场景录制或编写测试脚本。 4. **执行测试**:运行测试脚本并收集数据。 5. **结果分析**:分析测试结果,找出性能瓶颈。 6. **性能调优**:基于分析结果进行系统优化。 7. **重复迭代**:重复以上步骤直至达到预期的性能目标。 #### 七、LoadRunner接口测试基本操作方法 接口测试是性能测试中的一个重要组成部分,尤其是在微服务架构日益普及的今天。以下是基于LoadRunner 11的接口测试基本操作方法示例: 1. **打开LoadRunner 11**,选择Web Server协议。 2. **创建自定义请求**(Custom Request): - 使用`web_custom_request`函数可以处理GET和POST请求,而`web_submit_data`仅适用于POST请求,`web_submit_form`则适用于GET请求。 3. **编写接口脚本**: - 例如,使用`web_submit_data`函数发送POST请求: ```c Action() { int HttpRetCode; web_submit_data("web_submit_data", "Action=http://192.168.1.111:8081/api/GetRoomInfo?", "Method=POST", "TargetFrame=", "RecContentType=application/x-www-form-urlencoded", "Referer=http://{url}/login_wj;jsessionid={jsessionid}", ITEMDATA, "Name=ShopInfo","Value=学院路_3",ENDITEM, "Name=RequestTime","Value=2015-07-13",ENDITEM, "Name=RoomID","Value=4",ENDITEM, LAST); HttpRetCode = web_get_int_property(HTTP_INFO_RETURN_CODE); if (HttpRetCode == 200) { lr_output_message("成功!"); } } ``` - 通过以上步骤,我们可以完成一个简单的接口测试脚本的编写。
- 粉丝: 79
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助