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测试中的密码问题的更多相关文章

  1. 反向代理在Web渗透测试中的运用

    在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...

  2. 详述MySQL服务在渗透测试中的利用

    本文作者:i春秋签约作家——Binghe 致力于书写ichunqiu社区历史上最长篇最细致最真实的技术复现文章. 文章目录: MySQL之UDF提权 MySQL之MOF提权 MySQL之常规写启动项提 ...

  3. mysql中修改密码的方式

    参考地址:https://www.cnblogs.com/yang82/p/7794712.html mysql中修改用户密码的方式: 最简单的方法就是借助第三方工具Navicat for MySQL ...

  4. web测试中的测试点和测试方法总结

    测试是一种思维,包括情感思维和智力思维,情感思维主要体现在一句俗语:思想决定行动上(要怀疑一切),智力思维主要体现在测试用例的设计上.具有了这样的思想,就会找出更多的bug.   一.输入框 1.字符 ...

  5. 【测试方法】Web测试中bug定位基本方法

    知识总结:Web测试中bug定位基本方法 涉及知识点:测试方法 在web测试过程中,经常会遇到页面中内容或数据显示错误,甚至不显示,第一反应就是BUG,没错,确实是BUG.进一步了解这个BUG的问题出 ...

  6. Web安全测试中常见逻辑漏洞解析(实战篇)

    Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改 ...

  7. 在Spring Boot中使用Docker在测试中进行高级功能测试

    最近又学到了很多新知识,感谢优锐课老师细致地讲解,这篇博客记录下自己所学所想. 想更多地了解Spring Boot项目中的功能测试吗?这篇文章带你了解有关在测试中使用Docker容器的更多信息. 本文 ...

  8. [Android] 怎么在应用中实现密码隐藏?

    [Android] 怎么在应用中实现密码隐藏? 在安卓应用中,用户注册或者登录时,需要把密码隐藏,实现一定的保密效果.在安卓中,可以通过设置EditText组件的TransformationMetho ...

  9. ubuntu中phpmyadmin密码忘记

    在安装mysql时,默认只让你设置了root的密码,如果root的密码忘记,处理办法如下 第一步: 这时你需要进入/etc/mysql目录下,然后sudo vim/vi debian.cnf查看里面的 ...

随机推荐

  1. PowerDesigner 技巧【1】

    Name与Code同步的问题: PowerDesigner中,修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名. 解决方法如下: 1.选 ...

  2. 中国MOOC_面向对象程序设计——Java语言_第3周 对象容器_1查找里程

    第3周编程题 查看帮助 返回   第3周编程题.注意程序(包括注释)中不能出现汉字. 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后 ...

  3. 牛客练习赛42 出题的诀窍(数学+hash)

    出题的诀窍 题目链接:https://ac.nowcoder.com/acm/contest/393/C 题解: 由于他是在每一行选取一个元素,然后纵向来比较,这里行的顺序是不会影响的,所以我们将每一 ...

  4. Qt ------ 初始化构造函数参数,parent

    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setup ...

  5. [USACO09DEC] Cow Toll Paths

    https://www.luogu.org/problem/show?pid=2966 题目描述 Like everyone else, FJ is always thinking up ways t ...

  6. vijos 1464 积木游戏 DP

    描述 积木游戏 SERCOI 最近设计了一种积木游戏.每个游戏者有N块编号依次为1 ,2,…,N的长方体积木.对于每块积木,它的三条不同的边分别称为"a边"."b边&qu ...

  7. git高级用法

    1.git未保存的代码怎么切换分支? 2.两个分支的代码怎么合并?怎么解决冲突? 常见报错: 1.Merge failed : Some unreacked working tree files wo ...

  8. Java中哈希表(Hashtable)是如何实现的

    Java中哈希表(Hashtable)是如何实现的 Hashtable中有一个内部类Entry,用来保存单元数据,我们用来构建哈希表的每一个数据是Entry的一个实例.假设我们保存下面一组数据,第一列 ...

  9. 【vijos】P1083 小白逛公园

    [算法]线段树 [题解] 学自:https://vijos.org/p/1083/solution(wang_yanheng的回答) 回溯时维护一段区间的以下域: sumL:从左端点起连续区间的最大和 ...

  10. 【BZOJ】1609: [Usaco2008 Feb]Eating Together麻烦的聚餐

    [算法]动态规划 [题解]DP有个特点(递推的特点),就是记录所有可能状态然后按顺序转移. 最优化问题中DP往往占据重要地位. f[i][j]表示前i头奶牛,第i头改为号码j的最小改动数字,这样每头奶 ...