loadrunner函数说明(LoadRunner接口函数websubmitdata)(1)

前面简介了WSDL协议和JAVA类的接口测试方法,接下来这一小节我们将介绍HTTP协议下如何使用web_submit_data进行接口测试。

web_submit_data函数的语法如下:

int web_submit_data( const char *StepName, const char *Action, <List of Attributes>, ITEMDATA,<List of data>, [ EXTRARES, <List of Resource Attributes>,] LAST );

下面对语法中的核心参数进行详细的介绍。

1. StepName

SetpName是指步骤名,表示在VuGen中树形图中显示的名称,如果是自动事务处理也可以做事务名称。

2. Action

表示表单提交的URL地址,即要测试的URL地址,语法为"Action=<urlAddress>"

3. List of Attributes

表示提交表单请求时所涉及到的相关参数,主要的参数包括:

Method:表单提交方法,也可以理解为HTTP的请求方法,常见的有GET和POST两种,一般POST的使用的更多。

EncType:是指使用的编码类型,指定其做为Content-Type请求头的值,设置的格式有以下三种:

Ø "EncType=application/x–www–form–urlencoded"

Ø "EncType=multipart/form–data"

Ø "EncType=" (如果设置为空,表示没有产生内容类型请求头)

EncodeAtSign:表示是否使用ASCII值对“@”进行编码,如果是就设置为YES,反之设置为NO。

TargetFrame:表示当前链接、资源的Frame名称。

Referer:所涉及到的URL地址,就是我们要发送请求的相关URL地址,一般情况这个可以省略。

Mode:脚本录制模式,有两种HTML和HTTP两种,我们通常都是使用HTTP的模式。

ITEMDATA:属性和数据列表的分割标记。

4. List of Data

表示需要提交的表单数据列表。提交表单数据的语法格式为:

"name=n1", "value=v1", ENDITEM,

"name=n2", "EncryptedValue=qwerty", ENDITEM,

在提交表单数据时可以提交简单的,也可以是一些经过加密的数据。

如果提交加密的数据,那么value值应该是加密后的值,如以下代码:

"Name=password", "EncryptedValue=5c0e2ec0330afc1b417d", ENDITEM,

要获取加密的值,可以使用Password Encoder(Start > Programs Files >LoadRunner > Tools > Password encoder)工具来获取。

如果需要对已加密的字符串进行解密,那么可以使用lr_decrypt函数对已加密的字符串进行解密。如以下代码:

"Name=password", lr_decrypt("5c0e2ec0330afc1b417d "), ENDITEM,

关于ItemData通常有以下一些参数:

name:表示表单字段名称;

Value:表示该字段所对应的值;

File:表示提交数据中是否包含文件,如果是就设置为YES;

ContentType:表示上传文件的文件类型标识符。如果指定了空值,那么“Content-Type”头将不包含在文件中。

ContentTransferEncoding:表示传输时内容的编码格式。

下面是一个添加商品的请求脚本:

web_submit_data("goods.php_3",

"Action=http://192.168.40.128:8091/ECShop_V2.7.3_UTF8_release0411/upload/admin/goods.php?act=add",

"Method=POST",

"EncType=multipart/form-data",

"RecContentType=text/html",

"Referer=http://192.168.40.128:8091/ECShop_V2.7.3_UTF8_release0411/upload/admin/goods.php?act=add",

"Snapshot=t54.inf",

"Mode=HTTP",

ITEMDATA,

"Name=MAX_FILE_SIZE", "Value=2097152", ENDITEM,

"Name=goods_name", "Value=IPHONE XS", ENDITEM,

"Name=goods_name_color", "Value=", ENDITEM,

"Name=goods_name_style", "Value=", ENDITEM,

"Name=goods_sn", "Value=", ENDITEM,

"Name=cat_id", "Value=1", ENDITEM,

"Name=addedCategoryName", "Value=", ENDITEM,

"Name=brand_id", "Value=1", ENDITEM,

"Name=addedBrandName", "Value=", ENDITEM,

"Name=shop_price", "Value=9999", ENDITEM,

"Name=user_price[]", "Value=-1", ENDITEM,

"Name=user_rank[]", "Value=1", ENDITEM,

"Name=volume_number[]", "Value=", ENDITEM,

"Name=volume_price[]", "Value=", ENDITEM,

"Name=market_price", "Value=11998.8", ENDITEM,

"Name=give_integral", "Value=-1", ENDITEM,

"Name=rank_integral", "Value=-1", ENDITEM,

"Name=integral", "Value=99", ENDITEM,

"Name=promote_start_date", "Value=2018-12-11", ENDITEM,

"Name=promote_end_date", "Value=2019-01-11", ENDITEM,

"Name=goods_img", "Value=C:\\goods \\goods001.JPG", "File=Yes", ENDITEM,

"Name=auto_thumb", "Value=1", ENDITEM,

"Name=goods_desc", "Value=", ENDITEM,

"Name=goods_weight", "Value=", ENDITEM,

"Name=weight_unit", "Value=1", ENDITEM,

"Name=goods_number", "Value=1", ENDITEM,

"Name=warn_number", "Value=1", ENDITEM,

"Name=is_on_sale", "Value=1", ENDITEM,

"Name=is_alone_sale", "Value=1", ENDITEM,

"Name=keywords", "Value=", ENDITEM,

"Name=goods_brief", "Value=", ENDITEM,

"Name=seller_note", "Value=", ENDITEM,

"Name=goods_type", "Value=0", ENDITEM,

"Name=img_desc[]", "Value=", ENDITEM,

"Name=img_url[]", "Value=", "File=Yes", ENDITEM,

"Name=cat_id1", "Value=0", ENDITEM,

"Name=brand_id1", "Value=0", ENDITEM,

"Name=keyword1", "Value=", ENDITEM,

"Name=is_single", "Value=1", ENDITEM,

"Name=cat_id2", "Value=0", ENDITEM,

"Name=brand_id2", "Value=0", ENDITEM,

"Name=keyword2", "Value=", ENDITEM,

"Name=price2", "Value=", ENDITEM,

"Name=article_title", "Value=", ENDITEM,

"Name=goods_id", "Value=0", ENDITEM,

"Name=act", "Value=insert", ENDITEM,

LAST);

,