[原创]结构在Loadrunner中的应用
注:非授权,请勿转载
在实际工作中,很多情况我们需要将不同类型的数据组织起来一起应用,比如:学校在期末考试结束后,通常都要进行学生成绩的填报和查询工作。一个一年级小学生的信息通常包括:姓名、学号、性别、年龄、语文成绩、数学成绩等。姓名、性别是一个字符类型的数据,而年龄、学号为整数类型,语文成绩、数学成绩通常都为单精度浮点类型数据。我们知道不同类型的数据是不能放到同一个数组里面的,那么在C语言中是否有方法将这些不同数据类别的数据组织到一起呢?回答是:“有,可以用结构来处理这种问题。”,接下来,就让我们来了解一下,什么叫结构。“结构”是一种构造类型,它是由若干“成员”组成的,每一个成员可以是一个基本数据类型或者又是一个构造类型。通常,一个结构的一般形式为:
struct 结构名
{成员表列};
成员表列,由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:
类型说明符 成员名;
现在,让我们一起来给学生来定义一个“结构”
struct student
{
int num; //学号
char name[20]; //姓名
char sex[2]; //性别
int age; //年龄
float chinesescore; //语文成绩
float mathscore; //数学成绩
};
上面我们定义了一个名称为“student”的结构,它包含了,学号、姓名、性别、年龄、语文成绩和数学成绩信息。
那么如何应用结构,在LoadRunner中应用结构的示例脚本如下:
struct student
{
int num; //学号
char name[8]; //姓名
int age; //年龄
char sex[2]; //性别
float chinesescore; //语文成绩
float mathscore; //数学成绩
};
Action()
{ //为结构数组赋前2个结构数组元素值
struct student stu[3]={{101,"孙悟空",30,"男",100.00,100.00},
{102,"沙和尚",28,"男",99.00,99.00},};
struct student stu1={103,"白骨精",99,"女"}; //为结构变量stu1赋部分数据
int i;
stu1.chinesescore=90.50; //为stu1赋语文成绩
stu1.mathscore=89.00; //为stu1赋数学成绩
stu[2]=stu1; //将stu1变量赋给数组元素stu[2]
for (i=0;i<=2;i++) {
lr_output_message("-----------------------------");
lr_output_message("第%d个学生信息:",i+1);
lr_output_message("学号=%d",stu[i].num);
lr_output_message("姓名=%s",stu[i].name);
lr_output_message("性别=%s",stu[i].sex);
lr_output_message("年龄=%d",stu[i].age);
lr_output_message("语文成绩=%.2f",stu[i].chinesescore);
lr_output_message("数学成绩=%.2f",stu[i].mathscore);
lr_output_message("-----------------------------");
}
return 0;
}
上面脚本的输出内容为:
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(24): -----------------------------
Action.c(25): 第1个学生信息:
Action.c(26): 学号=101
Action.c(27): 姓名=孙悟空
Action.c(28): 性别=男
Action.c(29): 年龄=30
Action.c(30): 语文成绩=100.00
Action.c(31): 数学成绩=100.00
Action.c(32): -----------------------------
Action.c(24): -----------------------------
Action.c(25): 第2个学生信息:
Action.c(26): 学号=102
Action.c(27): 姓名=沙和尚
Action.c(28): 性别=男
Action.c(29): 年龄=28
Action.c(30): 语文成绩=99.00
Action.c(31): 数学成绩=99.00
Action.c(32): -----------------------------
Action.c(24): -----------------------------
Action.c(25): 第3个学生信息:
Action.c(26): 学号=103
Action.c(27): 姓名=白骨精
Action.c(28): 性别=女
Action.c(29): 年龄=99
Action.c(30): 语文成绩=90.50
Action.c(31): 数学成绩=89.00
Action.c(32): -----------------------------
Ending action Action.
Ending iteration 1.
Ending Vuser...
当然,为了我们引用结构方便,您可以应用类型定义符“typedef”将“struct student”命名成简洁的、明了的名称。C语言允许由用户自己定义类型说明符,即:类型定义符“typedef”,允许由用户为数据类型取“别名”。上面的结构脚本,我们可以用“typedef”实现同样的功能。
typedef struct student
{
int num; //学号
char name[8]; //姓名
int age; //年龄
char sex[2]; //性别
float chinesescore; //语文成绩
float mathscore; //数学成绩
} STU;
Action()
{ //为结构数组赋前2个结构数组元素值
STU stu[3]={{101,"孙悟空",30,"男",100.00,100.00},
{102,"沙和尚",28,"男",99.00,99.00},};
STU stu1={103,"白骨精",99,"女"};//为结构变量stu1赋部分数据
int i;
stu1.chinesescore=90.50; //为stu1赋语文成绩
stu1.mathscore=89.00; //为stu1赋数学成绩
stu[2]=stu1; //将stu1变量赋给数组元素stu[2]
for (i=0;i<=2;i++) {
lr_output_message("-----------------------------");
lr_output_message("第%d个学生信息:",i+1);
lr_output_message("学号=%d",stu[i].num);
lr_output_message("姓名=%s",stu[i].name);
lr_output_message("性别=%s",stu[i].sex);
lr_output_message("年龄=%d",stu[i].age);
lr_output_message("语文成绩=%.2f",stu[i].chinesescore);
lr_output_message("数学成绩=%.2f",stu[i].mathscore);
lr_output_message("-----------------------------");
}
return 0;
}
请大家注意黑体字部分,应用“typedef”后,您会发现在定义结构变量的时候,我们省略了“struct student”而用自定义的符号“STU”来声明相应变量即可,非常方便。还有一点,不知道您注意到没有,就是我们在定义的时候书写了这样的语句“STU stu[3]”,如果您在Delphi等语言中书写,它会提示您书写错误的,原因是这些语言是不区分大小写的,而在C语言中是区分大小写的,“STU”和“stu”分别代表两个不同的内容。
[原创]结构在Loadrunner中的应用相关推荐
- LoadRunner中log的使用总结
LoadRunner中log的使用总结 1.log的设置方式. 在 runtime setting中可以设置log的生成方式: 默认的log方式: Enable logging选中,log optio ...
- 结构化场景中的RGB-D SLAM
点云PCL免费知识星球,点云论文速读. 文章:RGB-D SLAM with Structural Regularities 作者:Yanyan Li , Raza Yunus , Nikolas B ...
- 理解LoadRunner中的局部变量和全局变量
以下内容均选自个人作品:<精通软件性能测试与LoadRunner实战> 在C语言中,变量有效性的范围称变量的作用域.不仅对于形参变量,C语言中所有的量都有自己的作用域,按作用域范围不同 ...
- loadrunner中自定义查找并替换函数
globas.h中定义 //LoadRunner中没有直接的函数支持查找并替换字符串,因此可以封装一个lr_replace函数出来:// ------------------------------- ...
- 浅谈loadrunner中pacing设置
2019独角兽企业重金招聘Python工程师标准>>> 在 LoadRunner 的运行场景中,有一个不大起眼的设置,可能经常会被很多人忽略,它就是Pacing .具体设置方式为: ...
- 以下构成python循环结构的方法中_超星尔雅初级英语口语(持续更新中)选修课答案...
套期具有"对冲""互抵"的关系 答:正确 差异化战略核心是企业在市场营销.研究和开发.产品技术和工艺设计以及服务等方面具有强大的实力. 答:正确 以下构成Pyt ...
- 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。...
程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成 ...
- SQL结构化查询语言中的LIKE语句
SQL结构化查询语言中的LIKE语句 在sql结构化查询语言中,like语句有着至关重要的作用. like语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串 ...
- loadrunner中并发数与迭代的区别
loadrunner中并发数与迭代的区别 网友问题: 例如在LR里,我要测100个用户同时并发登陆所用时间,那我是不是在录制好脚本后,需要参数化"用户名","密码&qu ...
最新文章
- Python中处理DataFrame,R绘图
- Python Machine Learning Windows 安装包网址
- 吐槽过后,我为什么要夸夸 Go 语言
- 大神是如何装逼的 之 vim插件使用taglist和nerdtree
- python三层for循环_Python基础入门-For循环
- Wannafly挑战赛25 A 因子
- java基础app开发教程_安卓app开发基础入门
- Dogfight :从无人机视频中检测无人机
- android应用是非正式版本,Androidstudio 打包apk安装失败 应用是非正式发布版本,当前设备不支持安装...
- 中国颅骨固定系统行业市场供需与战略研究报告
- 【程序人生】1024 程序员节——闲言鹤语
- 「BJOI 2019」奥术神杖
- 使用ENVI软件中的SARSCAP工具对RADARSAT数据进预处理
- selenium切换窗口的几种方法小结
- ata camera
- 职场办公常用的技巧,办公如有神助
- watchOS 4 教程(2):表格
- 【网络】【操作系统】详解select、poll、epoll
- ui设计师作品集_需要设计师,需要作品集
- 3d全景效果图和普通图片的区别,北京同创蓝天提供哪些服务?
热门文章
- spring-session源码解读 sesion
- iOS 开发_..和self...的区别以及使用
- javascript小实例,PC网页里的拖拽(转)
- Android报错——connect failed: EHOSTUNREACH (No route to host)
- iSCSI的基础实验
- Android开源测试框架
- 运维工作钱少、事多而且杂?年轻人,你这个思想很危险吶
- React系列---Redux高阶运用
- iOS中的两种搜索方式UISearchDisplayController和UISearchController
- 覆盖(override)和重载(overload)