LR录制Flex+Web,登录功能之登录密码出错的处理
在LR中录制好更改密码脚本,Controller中使用少量用户进行:单用户多迭代、多用户单迭代、多用户多迭代,运行正常,于是使用490Vuser+2iteration修改980个用户的密码,部分
Vuser因为Connection timed out、download timeout原因出错,这个时候因为用户量大,不知道究竟哪一个用户更改了密码,而哪一个用户没有更改成功。
至此,查找未更改密码的用户名,之前username参数化采用的Unique+Iteration,根据LR的参数分配规则及我的迭代次数是2,想着Controller中出错id为n,在VuGen的参数列表中对应
的 id =( 2*n -1) 与 (2*n),其中一条出错id为5,对应VuGen参数列表找到用户名为qt009和qt010登录,发现密码更改成功,看来自己对Unique+Iteration的分配规则的理解不够深刻。
找寻别的出路,思路如下:录制登录脚本,使用新密码登录,若出错,则是说明密码修改失败,经过一番百度和对LR帮助手册的学习,根据登录事务成功与否完成判断,参见L11帮助手册lr_get_transaction_duration()函数的例子。
Action() //此处仅显示重要代码部分
{ double trans_time = 0; int status = 0; lr_start_transaction("login"); trans_time = lr_get_transaction_duration("login"); /*
记录操作为“Login”的flex_amf_call的返回值,该函数0成功,1失败
*/
status = flex_amf_call(
"<operation>login</operation>"
"<parameters><string>{user}</string>
<string>800Best</string>); if (0 == status)
{
lr_output_message ("UserName:%s",lr_eval_string ("{user}"));
lr_end_transaction("login", LR_PASS);
}
else
{
lr_output_message ("UserName:%s",lr_eval_string ("{user}"));
lr_end_transaction("login", LR_FAIL);
} if (trans_time)
{
lr_output_message("The duration up to the submit is %f seconds", trans_time);
}
else
{
lr_output_message("The duration cannot be determined.");
} //lr_end_transaction("login", LR_AUTO); return 0;
}
使用上述代码,同时在Vuser——>Run-Time Setting ——>Miscellaneous——>Error Handling中勾选“ Continue on error”,即可。
在Controller中500Vuser+2iteration,打开状态为Failed的Vuser,Show Vuser log,即可知道是哪一个用户密码未修改成功,这里的场景可能还会遇到各种问题,但是分析一下可以知道和脚本无关,大概和服务器负载有关,可能一次不能找到所有的用户,多跑几次场景试试。
遇到的问题。
1: Action.c (16): illegal statement termination
Action.c (16): skipping `double'
解决:将 trans_time 与status放在脚本的最开始,因为LR的C解释器有点奇葩,变量的定义必须在系统函数调用之前,否则出错。
2: Error: Failed to end Transaction "login" (by name). Please check that you made a call to start transaction operation.
解决:产生该错误的原因是,事务没有成对匹配,检查发现当事务判断成功时有一条lr_end_transaction("login", LR_PASS);在action.c的末尾仍有一条lr_end_transaction("login", LR_AUTO); 总结:在有 分支 的代码中,一定要注意同一事务的start与end是否仅成对出现,要么干脆在分支语句中不使用事务的结束语句,要么每一个分支都加上结束语句,不要出现分支中有结束语句,分支外部还有结束语句的情况。
PS:道阻且长,希望自己在性能这条路上越走越远。
LR录制Flex+Web,登录功能之登录密码出错的处理的更多相关文章
- WPF登录功能,对于密码框的操作,其实WPF有个PasswordBox专门的密码框控件,完全可以选择自己要显示的密码符号。
在链接数据库后,点击登录时需要判断用户名和密码框是否为空,而PasswordBox不像textbox那样判断 textbox判断文本框为空 if (this.UserName.Text.Trim()= ...
- SpringBoot 之 实现登录功能及登录拦截器
增加登录退出控制器: # src/main/java/com/wu/controller/LoginController.java @Controller public class LoginCont ...
- 详细讲解:使用tp3.2.3完成简单的注册登录功能
使用3.2.3进行了一个简单不过的注册登录功能,界面介绍: 1.注册: 2.登录: 3.登录成功后: 没错,就是简单的让你特别容易上手,上面运用到的知识有: (1)自动验证.自动完成 (2)sessi ...
- 实现Web上的用户登录功能
关于如何实现web上的自动登录功能 文章来源http://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能 ...
- SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)
初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...
- 你会做Web上的用户登录功能吗?
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...
- 我的第一个python web开发框架(14)——后台管理系统登录功能
接下来正式进入网站的功能开发.要完成后台管理系统登录功能,通过查看登录页面,我们可以了解到,我们需要编写验证码图片获取接口和登录处理接口,然后在登录页面的HTML上编写AJAX. 在进行接口开发之前, ...
- 实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能
本篇实现Web请求后端Api的Demo,实现是通过JQuery的AJAX实现后端请求,以及对请求到的数据的解析处理,实现登录功能需求描述:1. 请求后端Api接口地址2. 根据返回信息进行判断处理前端 ...
- Java Web实现用户登录功能
java web 学习记录一下 mvc结构实现mysql 连接 什么是mvc MVC是模型(model).视图(view).控制(controller)这三个单词上的首字母组成.它是一种应用模型,它的 ...
随机推荐
- Swift_UI_UILabel
Swift_UI_UILabel import UIKit class ViewController: UIViewController { override func viewDidLoad() { ...
- MFC 工具栏隐藏与显示
最近在学MFC,看的是孙鑫的VC++视频,感觉还不错.在看到第九节课的时候,讲到工具栏的时候,做了个小功能:工具栏的隐藏和显示,但是有个bug就是一个悬浮的工具栏隐藏后再显示,就会变成停靠状态.这里我 ...
- python导入opencv解决no module named cv2问题
最近ubuntu用的比较多,在写神经网络代码时也会经常接触到python,但是python的环境配置确实是个头疼的问题. 尤其是接触到opencv时,需要导入opencv的库文件,网上也有很多方法,本 ...
- uboot补丁的分析
接下来分析一下韦老师的uboot补丁: -------------------------------------------------------------------------------- ...
- args[0]
java程序有一个主方法,是这样的public static void main(String [] args)你说的args[0]就是你用命令行编译运行java程序时,传入的第一个参数,比如你运行一 ...
- NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
今天调试SSM框架项目后台JSOn接口,报出来一个让人迷惑的错误:NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config 上网查了一下别人的博 ...
- Tomcat启动,不能加载项目问题。
项目部署时遇到的一个Tomcat问题: 启动tomcat后,不能加载项目 直接启动完成 但是项目未加载 最后找到原因: 把环境变量Catalina_HOME删除掉,就能加载. tomcat启 ...
- centos 更换 yum源
阿里云Linux安装镜像源地址:http://mirrors.aliyun.com/ CentOS系统更换软件安装源第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos ...
- 读《编写可维护的JavaScript》第九、十章总结
第九章 将配置数据从代码中分离出来 9.2 抽离配置数据 这章比较好理解,也非常常见,作者给的俩个例子就能说明一切: // 将配置数据藏在代码中 function validate(value) { ...
- 禁止从别的应用启动Activity
在Manifest.xml中设置android:exported="false"即可,如: <activity android:name=".MyAty" ...