Action()
{
/*
主流程:登录->下订单->支付订单->获取订单列表
定义事物
1)登录
2)下订单
3)支付订单
4)获取订单列表

接口为:application/json

思路:用户在app登录后,获取token供用户后续进行操作业务时使用
参数化:登录用的手机号、GQID号、密码
*/

//定义变量
//char *invoiceTitle = "发票抬头001";
//char *remark = "备注001";
char md5pwd[9] = "123456789";

lr_convert_string_encoding("发票抬头001",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"tempInvoiceTitle");
lr_convert_string_encoding("备注信息001",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"tempRemark");
lr_save_string(lr_eval_string("{tempInvoiceTitle}"), "invoiceTitle");
lr_save_string(lr_eval_string("{tempRemark}"), "remark");

lr_save_string("手机号码", "mobile");
lr_save_string("4089021", "gqid");
lr_save_string("密码", "password");

//1、设置新支付密码
lr_save_string(CMd5(md5pwd), "newmd5pwd");

//2、设置服务器IP地址
lr_save_string("ip:8080", "ip");

//停顿2秒
lr_think_time(2);

//3、设置头信息
//web_add_auto_header("Accept", "application/json");
//web_add_auto_header("Content-Type", "application/json;charset=utf-8");

//4、设置html支持的字符长度为1024
web_set_max_html_param_len("1024");

//5、设置关联
web_reg_save_param("code",
"LB=\"code\":",
"RB=,\"msg\"",
LAST);

//6、获取token值
web_reg_save_param("token",
"LB=\"token\":\"",
"RB=\",\"identity\"",
LAST);

//开始登陆事物
lr_start_transaction("提交登录");

//7、提交登录
web_custom_request("提交登录", "Method=POST",
"URL=http://{ip}/mobile/api/user/login",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"RecContentType=application/json",
"Body={\"mobile\":\"{mobile}\",\"gqid\":\"{gqid}\",\"password\":\"{password}\"}",
LAST );

//结束post请求
lr_end_transaction("提交登录", LR_PASS);

//8、判断提交登录是否成功
/*if(atoi(lr_eval_string("{code}")) == 0)
{
//结束post请求
lr_end_transaction("提交登录", LR_PASS);
lr_output_message("提交登录成功");

}
else
{
//结束post请求
lr_end_transaction("提交登录", LR_FAIL);
lr_output_message("提交登录失败");
}*/

//结束登陆事物

//9、获取payId值
web_reg_save_param("payId",
"LB=\"payId\":\"",
"RB=\",",
LAST);

//停顿2秒
lr_think_time(2);
lr_start_transaction("下订单");
//10、下订单
web_custom_request("下订单", "Method=POST",
"URL=http://{ip}/mobile/api/order/addorder",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"RecContentType=application/json",
"Body={\"token\": \"{token}\",\"getAddrId\": 1,\"getCarId\": 25,\"payType\": 2,\"remark\": \"{remark}\",\"price\": 66.8,\"orders\": [{\"getTime\": 1450921104000,\"goodss\": [{\"goodsId\": 93,\"count\": 1},{\"goodsId\": 96,\"count\": 1}]}],\"invoiceTitle\": \"{invoiceTitle}\"}",
LAST );

lr_end_transaction("下订单", LR_AUTO);

//停顿2秒
lr_think_time(2);
lr_start_transaction("重置支密码");
//11、支付订单
web_custom_request("重置支密码", "Method=POST",
"URL=http://{ip}/mobile/api/user/modifypaypwd",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"RecContentType=application/json",
"Body={\"token\":\"{token}\",\"srcpwd\":\"\",\"newpwd\":\"{newmd5pwd}\"}",
LAST );

lr_end_transaction("重置支密码", LR_AUTO);

//停顿2秒
lr_think_time(2);
lr_start_transaction("支付订单");

//12、支付订单
web_custom_request("支付订单", "Method=POST",
"URL=http://{ip}/mobile/api/pay/pay",
"Mode=HTTP",
"EncType=application/json;charset=utf-8",
"RecContentType=application/json",
"Body={\"token\": \"{token}\",\"payId\": \"{payId}\",\"payPwd\": \"{newmd5pwd}\",\"platform\": 3}",
LAST );

lr_end_transaction("支付订单", LR_AUTO);

web_convert_param("token", "SourceEncoding=PLAIN", "TargetEncoding=URL",LAST);

//停顿2秒
lr_think_time(2);
lr_start_transaction("获取订单列表");
//13、获取订单列表
web_url("获取订单列表",
"URL=http://{ip}/mobile/api/order/getorders?token={token}&offset=0&size=15",
"Mode=HTML",
"RecContentType=text/xml;charset=utf-8",
LAST );

lr_end_transaction("获取订单列表", LR_AUTO);

return 0;
}

LR中订单流程脚本的更多相关文章

  1. LR中订单流程脚本2

    Action(){ //1.设置服务器的IP地址 //lr_save_string("192.168.1.12:8080", "ip"); lr_save_st ...

  2. LR性能测试分析流程

    LR性能测试分析流程 一.     判断测试结果的有效性 (1)在整个测试场景的执行过程中,测试环境是否正常. (2)测试场景的设置是否正确.合理. (3)测试结果是否直接暴露出系统的一些问题. (4 ...

  3. LR中的时间戳函数web_save_timestamp_param

    以前真没注意过后面看某个群有人说到这个函数一查,还真有,那么处理时间戳就简单很多了,我们经常在各种网站上看到类似于这样的时间戳 51Testing软件测试网"d bLq!uR&am ...

  4. 第二十三篇:在SOUI中使用LUA脚本开发界面

    像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑. ...

  5. 关于LR中的EXTRARES

    LoadRunner脚本之EXTRARES参数 EXTRARES:分隔符,表示标记下一个属性是资源属性的列表(list of resource attributes). [EXTRARES后的资源是由 ...

  6. LR中的C语言问题

    今天在调试LR的脚本(C)时遇到了几个甚是头痛得问题,下面简单总结下: 1.首先LR中的C编译器遵循C90标准,规定在一个函数中,变量定义必须放在所有的执行语句之前!一旦在运行语句之间再有定义的话,会 ...

  7. LR中的编码问题

    [转载]LoadRunner字符集与检查点的探讨 很多人在loadrunner测试脚本中加入中文检查点的时候会出现检查失败的情况,究竟是为什么呢?其实是被测试系统与loadrunner字符集之间的转换 ...

  8. LR中日志设置和日志函数

    LR中日志参数的设置与使用 1.Run-Time Setting日志参数的设置 在loadrunner的vuser菜单下的Run-Time Setting的General的LOG选项中可以对在执行脚本 ...

  9. LR中HTTP协议录制模式选择

    在LR中使用HTML/HTTP协议进行脚本录制时面临正确选择HTTP-based script / URL-base script 录制模式的问题,以下是比较官方的建议:1)基于浏览器的应用程序推荐使 ...

随机推荐

  1. 【旧文章搬运】关于在指定进程调用KeUserModeCallback的问题

    原文发表于百度空间,2010-10-07========================================================================== 由于KeU ...

  2. 【转】cache buffer chain 第一篇

    文章转自:http://www.jydba.net/cache-buffer-chain/ buffer cache的管理有两个重要的数据结构: hash bucket和cache buffer ch ...

  3. StarUML中时序图

    StarUML中时序图 在看时序图的例子的时候,发现有些的时序图上有小人的图标,可是一些UML工具却没有找到小人的图标,这让我很闹心,一直没解决,今天终于将该问题给解决了.解决这个问题来自于网上的一个 ...

  4. Flexpaper二次开发入门教程》(十) Flexpaper简单使用-第一个Flexpaper例子

    4. Flexpaper简单使用 通过上面三章的内容,大家对Flexpaper.SWFTools应该有大概的了解了,SWF文件也已经生成了,我们开始进入Flexpaper的使用的介绍. 本章中只演示F ...

  5. Beyond Compare 简体版+注册码

    Beyond Compare 3.3.4.14431 官方简体版+注册码 查阅全文 ›

  6. 在调试javascript的时候,要常使用alert()

    在调试javascript的时候,要常使用alert()会帮助我们定位脚本错误.

  7. opencv Mat.at

    opencv c++ mat获取像素及像素赋值 For accessing pixel's channel value : ; i < image.cols; i++) { ; j < i ...

  8. 利用python数据分析panda学习笔记之Series

    1 Series a:类似一维数组的对象,每一个数据与之相关的数据标签组成 b:生成的左边为索引,不指定则默认从0开始. from pandas import Series,DataFrame imp ...

  9. POJ - 3253 Fence Repair 优先队列+贪心

    Fence Repair Farmer John wants to repair a small length of the fence around the pasture. He measures ...

  10. 洛谷 - P1381 - 单词背诵 - 哈希 - 尺取

    https://www.luogu.org/problemnew/show/P1381 字符串匹配,用哈希总没有错的. 然后就是尺取了,题目要求首先尽可能多覆盖,那么每次尾巴往后面长. 一开始先找到第 ...