Qtp测试中的密码问题
Qtp中,一般录制的脚本进行回放的时候就会遇到各种各样的问题,导致回放不能顺利进行,比如这次我在录制一个简单的登陆脚本的时候,就遇到了这样的问题:
[遇到问题]
1, 录制好的脚本中的密码不能正常输入。
2, 验证码由于每次都会变化怎么输入?
[解决办法]
- 对于第一个问题,大家在网上看看,解决的办法有很多种,大致分为以下几种:
1, 如果你录制好的脚本是这样的:WebEdit("***").SetSecure "加密以后的字符串",这种密码加密方式,如果你想改为明文,很好改正,改为WebEdit("***").Set "明文密码",就可以解决。
2, 如果你的密码控件支持Type方法还可以改为WebEdit("***").Type "明文密码"。
3, 有时你如果没有录制,你怎么知道你的密码在qtp中加密以后的密文是多少?所以想用SetSecure "加密以后的字符串"就有困难了。这里提供一个办法,如果你的密码是mercury,那么你可以直接写代码那么Crypt.Encrypt("mercury") 可以得到一个值 "464d059be45f8d524b913574b017ed492a8b8d4b"这就是你加密以后的密文了。
4, 还有一种可以使用sendkeys方法来进行,sendkeys专门是用来输入不能识别的特殊控件的。
- 对于第二个问题,方法也只有两个:
1, 让开发人员设计一个万能的验证码
2, 跳过验证码的输入
为什么这样建议,因为你想想,验证码的作用是什么,就是为了防止无休止的输入也就是为了防止破解和注水,所以要用什么别的技术去验证验证码的话,还是有点费时。当然也有解决办法,读者可以自己去看看:http://blog.163.com/lj_yyx/blog/static/6593781020098168415022/
[注意事项]
非常不幸,上面的几种方法都没有解决掉我的问题,最后,我在使用了很多种方法还是没有解决掉之后,我去请教了开发人员。然后他们说密码输入是用特殊的控件控制的,不能用自动化测试进行输入,目的也就是为了防止注水和破解,一般如果要进行自动化测试的话,就只能将这段代码注销掉,跳过进行测试。
当然还有很多不同的类型,这里只列举了几个,比如前段时间看到的说农行的登陆是一个每次打开都在变化的数字软件盘,应该怎么处理,这个帖子写的挺好的,可以参考一下:http://www.51testing.com/html/60/n-133560.html
[学习经验]
这个过程中,学会了一些小的技巧或者说有用的方法:
1, spy的使用,也就是说当你不知道你要测试的一个控件是什么?有什么方法可以使用的时候,就可以用spy进行探测,spy就是qtp中的那个小人,这样就可以看到很多种可以选择的方法,挺有用的。
2, sendkeys的使用方法,可以用来处理:
- 模拟字符串的输入,vbs代码:下面的代码的意思就是,输入123456。
Dim WshShell
Set WshShell = CreateObject("WScript.shell")
WshShell.SendKeys"123456"
Set WshShell=nothing
- 特殊字符串的输入,用法和上面一样。
Dim WshShell
Set WshShell = CreateObject("WScript.shell")
WshShell.SendKeys(“^+{Esc}”) ’表示输入Ctrl+Shift+Esc
Set WshShell=nothing
注:Ctrl,Shift,Alt这三个常用的组合键直接使用+,^,%表示。其余可以用{Esc},{Enter}表示。
[感悟]
时间已经是这样度过了很久了,虽然渐渐的明白了接下来的路,但是还是眺望不到尽头,就这样过。
很多事情就像看A片,看得人觉得很爽,做的人未必
TT
Qtp测试中的密码问题的更多相关文章
- 反向代理在Web渗透测试中的运用
在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...
- 详述MySQL服务在渗透测试中的利用
本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...
- mysql中修改密码的方式
参考地址:https://www.cnblogs.com/yang82/p/7794712.html mysql中修改用户密码的方式: 最简单的方法就是借助第三方工具Navicat for MySQL ...
- web测试中的测试点和测试方法总结
测试是一种思维,包括情感思维和智力思维,情感思维主要体现在一句俗语:思想决定行动上(要怀疑一切),智力思维主要体现在测试用例的设计上.具有了这样的思想,就会找出更多的bug. 一.输入框 1.字符 ...
- 【测试方法】Web测试中bug定位基本方法
知识总结:Web测试中bug定位基本方法 涉及知识点:测试方法 在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出 ...
- Web安全测试中常见逻辑漏洞解析(实战篇)
Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改 ...
- 在Spring Boot中使用Docker在测试中进行高级功能测试
最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...
- [Android] 怎么在应用中实现密码隐藏?
[Android] 怎么在应用中实现密码隐藏? 在安卓应用中,用户注册或者登录时,需要把密码隐藏,实现一定的保密效果.在安卓中,可以通过设置EditText组件的TransformationMetho ...
- ubuntu中phpmyadmin密码忘记
在安装mysql时,默认只让你设置了root的密码,如果root的密码忘记,处理办法如下 第一步: 这时你需要进入/etc/mysql目录下,然后sudo vim/vi debian.cnf查看里面的 ...
随机推荐
- UIScrollView控件及其三个常用属性:contentSize、contentInset和contentOffset
如果您对UIScrollView控件感到难以理解,下面是本人自己对UIScrollView控件的理解方式,按照我的思路,理解UIScrollView控件非常容易! 我对UIScrollView的构成理 ...
- 二叉树中和为某一值得路径 java实现
本题来自<剑指offer> 路径为从根节点到叶节点一条路径,路径经过的各节点数值之和等于某一给定数值,则打印路径上的节点 因为需要打印满足条件的路径节点信息和各节点之和,需要栈记录经过的节 ...
- Atlantis HDU - 1542 (线段树扫描线)
There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some ...
- [vim]大小写转换
http://babybandf.blog.163.com/blog/static/619935320110121134826/ ~ 将光标下的字母改变大小写 3~ 将光标位置开始的3个字母改变其大小 ...
- HDU1542 扫描线+离散化
Atlantis Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- Android滚动栏控件的优化
背景 由于普通TextView的跑马灯效果与焦点获取有关 所以不能直接使用 之前查找到的控件在数据设置方面存在问题 所以通过寻找github上的开源控件 并修改源码 得到一个目前感觉不错的效果 原理 ...
- 前端为什么要对url进行编码
为什么要对url进行编码 url有规范,在参数值中出现&字符会截断参数 url中文的问题,编码客转换为英文 也是第一种情况,url中有个参数值是url,传输的时候会出现错误 例1 有这样一串参 ...
- 51Nod 1009 数字1的个数 | 数位DP
题意: 小于等于n的所有数中1的出现次数 分析: 数位DP 预处理dp[i][j]存 从1~以j开头的i位数中有几个1,那么转移方程为: if(j == 1) dp[i][j] = dp[i-1][9 ...
- Maven -- 在进行war打包时用正式环境的配置覆盖开发环境的配置
我们的配置文件一般都放在 src/main/resource 目录下. 假定我们的正式环境配置放在 src/main/online-resource 目录下. 那么打成war包时,我们希望用onli ...
- 获取天气api
http://wthrcdn.etouch.cn/WeatherApi?citykey=101010100通过城市id获得天气数据,xml文件数据,当错误时会有<error>节点http: ...