LoadRunner特殊函数在测试中的误差分析
需积分: 0 140 浏览量
更新于2024-09-20
收藏 503KB DOC 举报
"LoadRunner测试工具中特殊函数的使用可能会导致一些预料之外的问题,本文将通过一个具体的案例探讨这些问题,并提供解决方案。"
在LoadRunner性能测试过程中,有时我们需要使用特殊的函数来实现特定的逻辑,例如数据计算、字符串操作等。在上述描述中,测试人员在验证一个进销存管理系统的进货总额计算功能时遇到了问题。测试脚本根据商品名称、数量和单价计算出的进货总额与页面显示的数值相同,但系统仍然提示预期结果与实际结果不一致。
关键脚本代码中,测试人员使用了以下函数:
1. `atof`:这是一个将字符串转换为浮点数的函数。在这里,它被用来将页面上的进货总额字符串"6279.60"转换为浮点数。
2. `float`:用于存储单价和计算总价格的变量类型。
3. `int`:用于存储进货数量的变量类型。
4. `sprintf`:格式化输出函数,将浮点数保留两位小数并转换为字符串。
问题出在比较字符串`totalprice`(即页面上的进货总额字符串)和`strtmpres`(保留两位小数的浮点数转换后的字符串)。这里,测试人员错误地认为可以简单地比较两个字符串的首字符(`*strtmpres==*totalprice`),实际上这是不正确的比较方式。字符串比较应该使用`strcmp`函数,而不是比较首字符指针。
正确的做法应该是将浮点数`ftotalprice`转换为字符串后,再与页面上的进货总额字符串进行比较,同时考虑到浮点数的精度问题。在C语言中,可以使用`printf`或`sprintf`将浮点数转换为字符串,并保留足够的小数位数,以确保与页面上的值匹配。此外,比较字符串时,应使用`strcmp`函数,如下所示:
```c
// 将ftotalprice转换为字符串
char strTotalPrice[64];
sprintf(strTotalPrice, "%.2f", ftotalprice);
// 使用strcmp进行字符串比较
if (strcmp(strTotalPrice, totalprice) == 0) {
lr_output_message("预期结果与实际结果相等!");
} else {
lr_output_message("预期结果与实际结果不等!");
}
```
总结,LoadRunner中特殊函数的应用需要注意以下几点:
1. 函数使用要正确,如`atof`用于字符串转浮点数,`strcmp`用于字符串比较。
2. 在处理浮点数时要考虑精度问题,特别是在与显示的数值进行比较时。
3. 测试脚本中的逻辑应严谨,确保所有可能的情况都得到正确处理。
4. 输出消息有助于调试,可以帮助识别脚本中的错误。
通过以上改进,可以更准确地判断系统是否正确计算了进货总额,从而提高测试的准确性。
2008-09-01 上传
点击了解资源详情
2009-02-19 上传
2013-07-15 上传
2011-10-22 上传
2018-11-13 上传
2010-10-26 上传
2010-05-16 上传
点击了解资源详情
普通网友
- 粉丝: 2101
- 资源: 803
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析