性能测试脚本规范全解.doc
文本预览下载声明
LoadRunner规范
东软集团有限公司 更改履历
序号 版本 更改章节 状态 更改描述 更改时间 更改申请号 状态:新建、增加、修改、删除。
int x, X; // 变量x 与 X 容易混淆
【规则2-1-3】程序中不要出现完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但会使人误解。
【规则2-1-4】变量的名字应当使用“名词”或者“形容词+名词”。另外,对于大家常用的、习惯成俗的形容词,可以采用缩写。
例如:
uint32 value; //名词
uint32 n_val; //形容词+名词,n是new的缩写
【规则2-1-5】尽量避免名字中出现数字编号,如val1,val2等,除非逻辑上的确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字编号最省事)。
【规则2-1-6】全局变量加前缀g_(表示global)修饰,单词之间采用下划线分割。
例如:
Char *g_msg_pool;
【规则2-1-7】函数名尽量采用“模块名+动词+名词”(动宾词组)或者“模块名+名词+动词”的方式命名,尽量做到根据函数名能大概明确函数所完成的功能。
例如:
bool comm_hash_create(…) //模块+名词+动词
【规则2-1-8】宏常量名必须全部采用大写的字母,单词之间使用下划线分隔。
例如:
#define DEF_BUF_LEN 150 //宏常量
格式化代码
【规则2-2-1】脚本应采用缩进风格编写,每层缩进使用一个制表位(TAB),类定义、方法都应顶格书写;左花括号要另起一行,不能跟在上一行的行末; 一个变量定义占一行,一个语句占一行;对独立的程序块之间、变量说明之后必须加空行;对于较长的语句(80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读;循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分;在结构成员赋值等情况,等号对齐,最少留一个空格;若函数或过程中的参数较长,则要进行适当的划分。形参的排序风格:最常使用的参数放在第一位;输入参数列表应放在输出参数列表的左边;将通用的参数放在特殊的参数的左边脚本越小越好。就像写code一样,不要太长,这样易于维护也易懂。尽量做到一个功能写一个脚本。如果那些功能是连续有序的,必须先做上一个,下一个动作才能进行,就只能放在一起了脚本名称,事务名称、参数名称要做到见名知义 内容/场景 负责人 开始时间 结束时间 测试结果记录 发现问题 解决办法 备注
一些经验
能用简单方法实现的,别用复杂的实现。尤其是获取loadrunner测试数据模块。
关联函数使用
web_reg_save_param(attributeChannelsXml,
LB=channels, RB=/channels,
LAST);
sprintf (tmp, channels%s/channels,lr_eval_string({attributeChannelsXml}));
lr_save_string(tmp, attributeChannelsXml);
HTTP协议检查点
a)、检查HTTP应答消息的BODY部分
?web_reg_find(Text=Welcome, ?LAST);
b)、检查HTTP应答消息的Header部分
web_save_header(RESPONSE,response);
web_url(John_Willoughby,
URL=http://Combe_M/portal/index.asp,
TargetFrame=_TOP,
LAST);
if( strstr(lr_eval_string({response}), OK) != NULL )
{
//PASS
}
else
{
//FAIL
}
使用hex_print函数,进行二进制报文调试。
char* hex_print(void *hexbuf, int bufsize)
{
int i;
unsigned char *buf_str;
unsigned char *x;
unsigned char tmp[1];
buf_str = (unsigned char *)m
显示全部