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. JavaScript定义类的方式与其它OO语言有些差异

    JavaScript面向对象的程序编写与其它OO语言有一些出入,所以使用JavaScript的面向对象特性的时候,需要注意一些规范性的问题.下面就简单地谈一下,JavaScript如何定义一个类,在定 ...

  2. mybaties实体的 Mapper.xml文件中自定义sql时模糊查询的写法

    <select  id=selectByNameLike" parameterType="string" resultMap="BaseResultMap ...

  3. 关于notepad++如何自动补全标签的问题

    转自:https://blog.csdn.net/Panda_Eyes1/article/details/81486331 关于notepad++如何自动补全标签的问题 2018年08月07日 18: ...

  4. POJ3177:Redundant Paths(并查集+桥)

    Redundant Paths Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19316   Accepted: 8003 ...

  5. python升级引发的问题总结

    http://www.cnblogs.com/ajianbeyourself/p/4214398.html http://www.cnblogs.com/hanggegege/p/6993003.ht ...

  6. JavaScript设计模式学习之单例模式

    一.单例模式介绍                 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问, ...

  7. SSH客户端,FinalShell服务器管理,远程桌面加速软件,支持Windows,Mac OS X,Linux,版本2.6.3.1

    FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求. 用户QQ群 342045988 Windows版下载地址:http:/ ...

  8. 线程阶段性总结——APM,ThreadPool,Task,TaskScheduler ,CancellationTokenSource

    不管我们使用thread,threadPool,task,还是APM异步,本质都是在使用多线程.对于新手来说,不太敢用多线程的原因,就我个人的体验来说,就是对多线程的异常捕获方式或时机缺乏了解,而一旦 ...

  9. 在浏览器输入网址,Enter之后发生的事情

    简介: 1. 浏览器接收域名 2. 发送域名给DNS,中文名字是域名系统服务器,一般位于ISP(互联网服务提供商,比如我们熟知的联通.移动.电信等) 中.浏览器会首先发给离自己最近的DNS,DNS收到 ...

  10. 2017 济南综合班 Day 2

    木棍(stick) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有很多木棍,具体的,总共有n根,且每根木棍都有一个长度.为了方便起见,我们可以用一个正 ...