1、完成前程贷的(登录,投标)

2、所有的返回信息都用关联函数(web_reg_save_param_ex)进行关联

3、对返回信息用(strcmp)函数进行if判断

4、总结(web_reg_save_param和web_reg_save_param_ex)区别

Action()
{
    
    
    web_reg_save_param_ex(
        "ParamName=success01",
        "LB=class=\"success\">",
        "RB=</p>",
        "Ordinal=1",
        SEARCH_FILTERS,
        "Scope=ALL",
        LAST);
//    
    
    //登录
    lr_start_transaction("登录");
    
    web_submit_data("web_submit_data",
        "Action=http://120.78.128.25:8765/Frontend/Index/login",
        "Method=POST",
        "TargetFrame=",
        "Referer=http://120.78.128.25:8765/Index/login.html",
        ITEMDATA,
        "Name=phone", "Value=13825161923", ENDITEM,
        "Name=password", "Value=lemon123", ENDITEM,
        "Name=remember_me", "Value=1", ENDITEM,
        LAST);
    lr_end_transaction("登录", LR_AUTO);

lr_error_message("cg---:%s",lr_eval_string("{success01}"));

//    //获取投标id
    web_reg_save_param_ex(
        "ParamName=get_id",
        "LB=href=\"/loan/loan_detail/Id/",
        "RB=.html",
        "Ordinal=1",
        SEARCH_FILTERS,
        "Scope=ALL",
        LAST);
//获取账号名    
web_reg_save_param_ex(
        "ParamName=get_username",
        "LB=>我的帐户[",
        "RB=]</a>",
        "Ordinal=1",
        SEARCH_FILTERS,
        "Scope=ALL",
        LAST);
//首页
    web_url("web_url",
        "URL=http://120.78.128.25:8765/Index/index.html",
        "TargetFrame=",
        "Resource=0",
        "Referer=",
        "Mode=HTML",
        LAST);

lr_error_message("投标id:%s",lr_eval_string("{get_id}"));
lr_error_message("投标用户:%s",lr_eval_string("{get_username}"));
    
    //获取token
    web_reg_save_param_ex(
        "ParamName=get_token",
        "LB=data-token=\"",
        "RB==\" data-id=",
        "Ordinal=1",
        SEARCH_FILTERS,
        "Scope=ALL",
        LAST);

//产生token
 web_url("web_url",
        "URL=http://120.78.128.25:8765/loan/loan_detail/Id/{get_id}.html",
        "TargetFrame=",
        "Resource=0",
        "Referer=",
        "Mode=HTML",
        LAST); 
    lr_error_message("投标token:%s",lr_eval_string("{get_token}"));
    
    //获取投标返回值
    web_reg_save_param_ex(
        "ParamName=get_code",
        "LB={\"state\":",
        "RB=,\"msg\":",
        "Ordinal=1",
        SEARCH_FILTERS,
        "Scope=ALL",
        LAST);
    lr_start_transaction("投标");
    web_submit_data("web_submit_data",
        "Action=http://120.78.128.25:8765/Invest/invest",
        "Method=POST",
        "TargetFrame=",
        "Referer=",
        "Mode=HTML",
        ITEMDATA,
        "Name=id", "Value={get_id}", ENDITEM,
        "Name=val", "Value=100", ENDITEM,
        "Name=token", "Value={get_token}", ENDITEM,
        "Name=rewardValue", "Value=0", ENDITEM,
        LAST);

//对strcmp函数的运用
    if(strcmp(lr_eval_string("{get_code}"),"1")==0)
    {
        lr_end_transaction("投标", LR_PASS);
        lr_error_message("投标成功!:%s,用户名:%s,投标id:%s",lr_eval_string("{get_code}"),lr_eval_string("{get_username}"),lr_eval_string("{get_id}")); //每个占位符与后面每个参数对应
    }
    else{
        lr_end_transaction("投标", LR_FAIL);
        lr_error_message("投标失败!!:%s",lr_eval_string("{get_code}"));
    }

return 0;
}

5、预习(lr_save_string,web_custom_request)函数和参数化

  1)int lr_save_string (const char *param_value, const char *param_name);

  函数目的:将param_value值保存到param_name变量中

  参数介绍:param_value:要保存的值

  param_name: 变量名称

  例子:

  lr_save_string("10","test"); //将常量10保存为参数test

  lr_output_message(lr_eval_string("{test}"));  //获取并输出参数的当前值

  执行结果:10

  2)

Int web_custom_request (const char *RequestName, <List of Attributes>, [EXTRARES, <List of Resource Attributes>,] LAST );

返回值

返回 LR_PASS(0)代表成功,LR_FAIL(1)代表失败。参数:

RequestName:步骤的名称,VuGen 中树形视图中显示的名称。

List of Attribute:支持的属性有以下几种:

URL:页面地址。

Method :页面的提交方式,POST 或 GET。

TargetFrame:包含当前链接或资源的 frame 的名称。参见 List of Attributes

的同名参数。

EncType:编码类型。

RecContentType:响应头的内容类型。参见 List of Attributes 的同名参数。

Referer:参见 List of Attributes 的同名参数。

Body:请求体。参见 List of Attributes 的同名参数。

RAW BODY:参见 List of Attributes 的同名参数。

BodyFilePath:作为请求体传送的文件的路径。它不能与下面的属性一起使用: Body,或者其他 Body 属性或 Raw Body 属性包括 BodyBinary,BodyUnicode,

RAW_BODY_START 或 Binary=1。

Resource、ResourceByteLimit、Snapshot、Mode:参见 List of Attributes

的同名参数。

ExtraResBaseDir:参见 List of Attributes 的同名参数。

UserAgent:用户代理,它是一个 HTTP 头的名字,用来标识应用程序,通常是浏览器,它呈现的是用户和服务器的交互。

编写前程贷投标loadrunner脚本及总结的更多相关文章

  1. 手动编写一个简单的loadrunner脚本

    loadrunner除了自动录制脚本外,还可以手动编写脚本,通过右键+inset step添加步骤,还可以手动添加事务,集合点等 下面是一个简单的Action脚本,服务是运行在本机的flask服务: ...

  2. LoadRunner脚本编写(转)

    性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了.还有非计算机专业出身的测试员 ...

  3. Loadrunner与idea编写加密的java Vusers脚本总结

    Loadrunner与idea编写加密的java Vusers脚本总结 准备工作:   jdk版本的选择:       Loadrunner11 使用版本jdk1.6 32位(如果使用1.7的Load ...

  4. loadrunner脚本编写经验

    最近写了不少loadrunner脚本,记录一下心得:1 loadrunner脚本基本可以认为就是c语言代码(loadrunner支持不同语言的脚本,默认生成的是用c语言写的脚本)2 loadrunne ...

  5. LoadRunner脚本编写

    性能測试project师要懂代码么?答案是必须的.好多測试员觉得在loadrunner中编写脚本非常难非常牛X ,主要是大多測试人员并未做过开发工作,大学的那点程序基础也忘记的几乎相同了. 还有非计算 ...

  6. LoadRunner脚本编写之三(事务函数)

    LoadRunner脚本编写之三(事务函数) 关于脚本的这块,前两篇都在讲C语言,其实,要整理点实用的东西挺难,在应用中多对录制的脚本分析,但对于新手学脚本确实无从下手. 先贴一个脚本: 完整代码: ...

  7. LoadRunner脚本编写之二

    LoadRunner脚本编写之二 编程基本语法必须要记牢.程序的思想也很重要. 下面来回顾一下嵌套循环例子. Action() {     int  i,j;   //生命两个变量     for ( ...

  8. LoadRunner脚本编写之一

    LoadRunner脚本编写之一 性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不 ...

  9. LoadRunner脚本编写(5)-- 检查点,关联等函数

    LoadRunner脚本编写(5)-- 检查点,关联等函数 http://www.51testing.com/?34866/action_viewspace_itemid_70224.html来继续翻 ...

随机推荐

  1. 结对项目——Core设计与实现

    写在前面:关于结对编程 结对编程我一直认为是一种非常好的合作方式,他的形式主要是由一个人负责代码编写,另一个人则在一旁即时对写下的代码进行审查,这样可以大大减少代码实现方面的错误. 这次我的结对伙伴是 ...

  2. 语音笔记:MFCC

    一,传统语音识别体系结构 二,MFCC特征提取 MFCC(Mel-frequency cepstral coefficients):梅尔频率倒谱系数.梅尔频率是基于人耳听觉特性提出来的, 它与Hz频率 ...

  3. SE Springer小组之《Spring音乐播放器》可行性研究报告五、六

    5 可选择的其他系统方案 曾经考虑过制作闹钟系统,但考虑到闹钟系统在电脑应用中极其不实用,所以此方案未通过. 6 投资及效益分析 6.1支出 本软件只用于完成课程学习要求,不用做商用,无基础设备等支出 ...

  4. 【转】C语言宏高级用法 [总结]

    1.前言  今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简 ...

  5. 收获,不止oracle

    物理体系 体系结构图 缩放 1.Oracle由实例和数据库组成,上半部分的直角方框为实例instance,下半部分的圆角方框为数据库Database. 2.实例是由一个开辟的共享内存区SGA(Syst ...

  6. PAT 1036 跟奥巴马一起编程

    https://pintia.cn/problem-sets/994805260223102976/problems/994805285812551680 美国总统奥巴马不仅呼吁所有人都学习编程,甚至 ...

  7. [转帖]Tomcat目录结构详解

    Tomcat目录结构详解 https://www.cnblogs.com/veggiegfei/p/8474484.html 之前应该是知道一点 但是没有这么系统 感谢原作者的描述. 1.bin: 该 ...

  8. 微信小程序不能超过十个并发的解决办法

    一般是封装一个请求队列,将请求对象存入队列,在complete写队列的出队操作.

  9. python拉格朗日插值

    #拉格朗日插值代码 import pandas as pd #导入数据分析库Pandas from scipy.interpolate import lagrange #导入拉格朗日插值函数 inpu ...

  10. centos网络yum源的安装

    CentOS使用EPEL YUM源EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHE ...