51Testing软件测试论坛

标题: 火车票网上订票登录脚本 [打印本页]

作者: lj16329    时间: 2012-1-9 11:37
标题: 火车票网上订票登录脚本
本帖最后由 lj16329 于 2013-7-24 22:30 编辑

该脚本已过期,请需要技术的加我Q哈。



目前的火车票订票系统由于用户过多,很难登陆成功。用该脚本可以提高单位时间内登陆次数,并省去重复输入密码并点击登陆按钮的操作。

                                                 欢迎与我进行技术交流及探讨,QQ:109652067

环境准备:

1QTP10.0

2WINDOWS XP2003WIN7

3IE6/IE7/IE8/IE9

使用方法:

1、将压缩包中《火车票订票脚本》这个文件夹解压到任意目录下

2、关掉当前所有已打开的IE页面

3、打开QTP软件,并打开《火车票订票脚本》脚本

4、修改脚本代码的登陆用户名及登录密码,如图所示(注意保留双引号):


5、打开IE,输入这个网址:http://www.12306.cn/mormhweb/kyfw/(注意将IE上方的提示信息弄没),得到这个页面(注意:从始至终桌面必须只有一个IE页面,否则脚本不会运行成功):

6、运行QTP脚本,期间会弹出验证码输入框,输入后敲击回车即可(提示:此时可用Alt+Tab键在IEQPT验证码输入窗口间切换,方便查看验证码并输入)。

7、如果在线人数过多无法登陆成功,QTP会重复弹出上一步的验证码输入窗口,直到登陆成功为止。登陆成功后,QTP给出成功提示,脚本自动结束运行。


作者: lj16329    时间: 2012-1-9 13:09
本帖最后由 lj16329 于 2012-1-9 13:11 编辑

只见有人下载,不见有人回呢。。。自己顶一下
作者: metaboy    时间: 2012-1-9 13:11
呵呵,因为使用这个脚本需要QTP,所以受众面有限!可以将QTP换成轻量级的FF插件完成!
作者: ruthenium    时间: 2012-1-9 13:11
刚注册的。怎么得到技术指标啊?
作者: lj16329    时间: 2012-1-9 13:13
FF插件毕竟也有受众面嘛。。。
作者: ruthenium    时间: 2012-1-9 13:14
啥是QTP10?
作者: lj16329    时间: 2012-1-9 13:14
技术指数已经取消掉了
作者: lj16329    时间: 2012-1-9 13:15
回复 6# ruthenium


    。。。看来QTP的受众面确实有限啊。。。
作者: lj16329    时间: 2012-1-9 13:16
可以根据这思路将QTP脚本改写成VBS,那样就好多了。。。
作者: ruthenium    时间: 2012-1-9 13:19
回复 9# lj16329
VBS。。。我现在Linux下用fortran的,早年间的C和Basic都还给老师了。
作者: wx小鱼    时间: 2012-1-9 13:31
楼主是牛人,顶一个!
作者: lj16329    时间: 2012-1-9 13:33
回复 11# wx小鱼


    谢谢太感动了
作者: wx小鱼    时间: 2012-1-9 13:34
回复 12# lj16329
作者: lj16329    时间: 2012-1-9 13:36
这个只是登录的脚本,抢票的脚本其实也可以用QTP做出来的

大家如果有兴趣可以试一试哈。
作者: lj16329    时间: 2012-1-9 13:38
QTP自带的验证码功能不太好用,所以目前只能是半自动的,需要手工输入验证码
作者: ruthenium    时间: 2012-1-9 13:39
回复 14# lj16329


    看到Google+上有个.js的脚本。不知道原理是不是通用的?楼主试试看啊?
作者: ruthenium    时间: 2012-1-9 13:39
回复 14# lj16329


    看到Google+上有个.js的脚本。不知道原理是不是通用的?楼主试试看啊?
作者: lj16329    时间: 2012-1-9 13:40
回复 17# ruthenium


    那个JS脚本跟我的不一样。QTP可以调用JS,但是这样有点画蛇添足了,就没有必要用QTP了
作者: lj16329    时间: 2012-1-9 13:52
如果有机会我会将我制作这个QTP脚本当作一个实战教程录制一个视频,分享给大家
作者: ruthenium    时间: 2012-1-9 14:10
回复 19# lj16329


    明天上午10点订票。现在正在琢磨怎么能抢到呢。明天肯定比今天更凶险。
那个JS的脚本我也用不起来。不知道什么地方出了问题。试试你这个。
觉得视频很可能赶不上明天买票了。不管怎么样,十分感谢。
作者: ruthenium    时间: 2012-1-9 14:54
安装了QTP。不过代码运行出现些问题。
现象是输入了验证码以后没反应。
返回有这样个错误,不知道是否有关
Object's physical description:
Mercury Class = Browser
CreationTime = 0
|Title = 铁路客户服务中心--客运服务 - Windows Internet Explorer
openurl = about:blank
opentitle =
Opened By Testing Tool = 0
number of tabs = 1
Name = 铁路客户服务中心--客运服务
作者: wugecat    时间: 2012-1-9 15:21
呵呵,我前几天也做了一个。。。能识别验证码但是成功几率不高
作者: lj16329    时间: 2012-1-9 15:50
呵呵,牛人还是不少哦
作者: shenyafang    时间: 2012-1-9 16:58
不错,谢谢分享呢
作者: shl5254    时间: 2012-1-9 17:22
懂技术的伤不起  
作者: lj16329    时间: 2012-1-9 17:39
感谢大家向我反馈问题,我一定会一一解答的

这个脚本录得比较仓促。再则QTP在不同环境下可能出现这样那样的问题,所以有些人会运行报错

推荐大家不在IE9下运行,换IE6-IE8来运行。可能错误会少一些
作者: 团子一枚    时间: 2012-1-9 17:55
需要QTP啊。。。。
作者: lj16329    时间: 2012-1-10 12:10
庆祝《火车票网上订票登录脚本》帖子1天内访问量过千~!
作者: wangyanzhao    时间: 2012-1-10 13:08
回复 15# lj16329


    支持
作者: pl80601983    时间: 2012-1-11 10:10
一直感觉QTP10和win7的兼容性不是很好。
作者: 喝少了想上树    时间: 2012-1-12 11:46
回复 1# lj16329


可以订到吗
作者: laoli0201    时间: 2012-1-12 12:53
很不错,楼主加油
作者: laoli0201    时间: 2012-1-12 12:53
很不错,楼主加油
作者: laoli0201    时间: 2012-1-12 12:54
楼主加油!
作者: unholyalliance    时间: 2012-1-12 14:51
回复 22# wugecat

劳请指点,这两条语句是嘛意思?
Window("Windows Internet Explorer").Activate @@ hightlight id_;_722104_;_script infofile_;_ZIP::ssf1.xml_;_
Window("Windows Internet Explorer").WinObject("Internet Explorer_Server").Output CheckPoint("Internet Explorer_Server_2") @@ hightlight id_;_984492_;_script infofile_;_ZIP::ssf3.xml_;_
作者: zhghuxin    时间: 2012-1-12 15:23
验证码问题现在还不好解决,这样不是自动化
作者: wy_yyh    时间: 2012-1-13 09:55
哈哈还要输入验证码,最好弄个自动识别验证码的那才给力,要不就没什么意义了
作者: anikisnow    时间: 2012-1-13 10:33
感谢楼主
作者: lj16329    时间: 2012-1-13 11:03
回复 35# unholyalliance


   我的脚本。。貌似没有这两句啊。。。您可以把您脚本的代码窗口截个图吗?
作者: lj16329    时间: 2012-1-13 11:05
回复 36# zhghuxin


    是的,相信验证码是所有外挂都比较头疼的问题。
   个人认为这种要求快速登录进去的脚本,最好还是手工输入验证码。因为自动识别验证码成功几率实在不敢恭维,所以在订票人非常着急的情况下,还是手工输入验证码,可以达到最好的效果。
作者: lj16329    时间: 2012-1-13 11:10
楼主回复:
非常感谢大家的支持,自从这个帖子发表以来,已经有不少朋友找我交流了。

欢迎大家今后继续跟我交流技术上的问题,对于大家的问题、建议或者意见,我一定会耐心解答、虚心听取的

我也会继续努力,争取多做出一些实战性较强的QTP脚本来,免费分享给大家,一起来提高脚本编写能力
作者: lxm18    时间: 2012-1-13 11:24
麻烦楼主尽快做一个视频给我们这些来鸟学习下,来得及还可以定个春节返程的火车票嘛!再此先谢过了!
作者: 书剑download    时间: 2012-1-13 11:55
我的打不开
作者: wugecat    时间: 2012-1-13 12:21
回复 35# unholyalliance

第一句就是激活窗体的意思,没什么,第二句就是用来识别验证码的通过text area 识别验证码后output到环境变量“aaa”的
作者: 星子    时间: 2012-1-13 14:25
好东西哟回复 1# lj16329
作者: shuijin    时间: 2012-1-13 14:54
牛人真不少啊
作者: sunwenye    时间: 2012-1-13 15:28
楼主,如果不解决QTP识别的验证码图片的问题,这个脚本用起来真没有直接在网站上输入来的快

用户名会直接保留在IE的Textbox里,密码用Copy,粘贴的,唯一用户输入的就是验证码,但是貌似您的这个脚本不解决自动输入验证码的功能!!
作者: Ethan_yao    时间: 2012-1-13 16:08
总算有那么一丁点省事了
作者: 17800455    时间: 2012-1-13 17:05
主要还是验证码的问题,要不然还用什么qtp啊。 不知道用dom可以实现在。

你以为想订票的人都会用qtp啊。知道qtp是什么东西啊。
作者: fly_away    时间: 2012-1-14 00:03
在春运这个共同的敌人面前,
测试有测试的招,开发有开发的招。
在HW已经有牛人用JAVA写出了订票的程序,并在论坛贴图发布出来。
不过在审核的时候……
被版主以危*(&害国,家%系,统#安,全的名义给河蟹了,你懂的。
作者: kaixinle    时间: 2012-1-14 09:49
终于让我找到了,LZ,我看过你的代码了,有几个方面我认为不太修改了一下,删除了部分冗余的代码,添加部分更为人性化的判断,不过还是要谢谢你的代码,LZ威武!!!!
作者: zjp558    时间: 2012-1-15 10:28
回复 1# lj16329


    学习下,谢谢啦!
作者: lj16329    时间: 2012-1-16 10:13
回复 49# 17800455

楼主回复:
    感谢您的评论。确实QTP这款自动化测试软件,大众基本都没听说过。我写这个脚本的主要目的,也是打算把我自己的学习心得分享出来,供测试同行们学习,共同提高自动化测试脚本的编写水平。
  验证码我是这样看的:目前QTP在识别验证码上,貌似并不占有什么优势。与其让QTP识别错误的验证码,不如叫用户手动去输入,这样实际上可以提高登录效率。
作者: lj16329    时间: 2012-1-16 10:14
回复 51# kaixinle


    终于让我找到了,LZ,我看过你的代码了,有几个方面我认为不太修改了一下,删除了部分冗余的代码,添加部分更为人性化的判断,不过还是要谢谢你的代码,LZ威武!!!!


楼主回复:

  感谢您的评论,不知您可否把您修改后的代码也贴出来?大家共同学习一下。
作者: lj16329    时间: 2012-1-16 10:25
回复 47# sunwenye


    楼主,如果不解决QTP识别的验证码图片的问题,这个脚本用起来真没有直接在网站上输入来的快

用户名会直接保留在IE的Textbox里,密码用Copy,粘贴的,唯一用户输入的就是验证码,但是貌似您的这个脚本不解决自动输入验证码的功能!!


楼主回复:
  感谢您的评论!楼主是这样认为的:如果是手动登录,在网站提示“当前人数过多,请重新再试”时,需要做如下几个操作,才能确保下一次登录:

1、如果弹出的是提示信息框,需要手动敲击一下回车,或者用鼠标点击一下【确定】按钮,让这个提示框消失。
2、用户名系统会自动保存下来。密码不会自动保存,这个大家都是知道的,如果来填入这个密码,即使使用复制粘贴的方式,还是需要用左手多按一次ctrl+v
3、输入完密码后,需要将鼠标焦点定位到验证码输入框来确保可以输入验证码,这也需要手动按一次tab键,或用鼠标去定位
4、输入完用户名、密码、验证码后,还需要点击【登录】按钮,这个操作也需要手动按一次回车,或用鼠标去点击才能完成操作

以上操作虽然简单,但如果重复输入几百次,很多人一定会觉得麻烦。

这个自动化脚本的优势在于,可以省去除了填入验证码其余的所有操作。在需要登录几百次的情况下,相信这个脚本还是会带给您很大便利的。
作者: 无知土豆    时间: 2012-1-16 10:48
支持一下
作者: archonwang    时间: 2012-1-16 11:57
呵呵。完全可以。不过现在不是有chrome插件支持的么?
作者: chnd51    时间: 2012-1-16 13:58
我下了
作者: wower1985    时间: 2012-1-16 14:22
回复 1# lj16329


    看了google浏览器上别人用的js写的插件,并且使用来订票,果然不负众望,成功订票了,

我也是搞QTP的,现在感觉QTP弱爆了。。。。。。。。。。。。。
作者: bingorz    时间: 2012-1-16 14:23
回复 57# archonwang


    求插件链接!!!
作者: lj16329    时间: 2012-1-16 14:25
回复 59# wower1985


        看了google浏览器上别人用的js写的插件,并且使用来订票,果然不负众望,成功订票了,
我也是搞QTP的,现在感觉QTP弱爆了。。。。。。。。。。。。。


楼主回复:

QTP来做这种外挂确实勉为其难,还是那个初衷:写这个脚本的目的是为了跟大家做技术交流
作者: tzing    时间: 2012-1-16 15:10
顶楼主 拿走试试看看
作者: 阿拉丁夭夭    时间: 2012-1-16 16:12
qtp9.2可以用吗
作者: iori    时间: 2012-1-16 16:25
脚本还有待于完善
作者: archonwang    时间: 2012-1-16 17:41
https://github.com/zzdhidden/12306
作者: zli199    时间: 2012-1-17 10:41
不管怎样,先下载下来看看。好东西。
作者: ljj149850508    时间: 2012-1-17 15:30
留个脚印,方便备查
作者: pipizhang    时间: 2012-1-17 16:24
希望楼主研究研究如何识别验证码~这样就可以真正做到自动化了~造福广大人民群众!
作者: 545511360    时间: 2012-1-17 16:36
下了,但是没有qtp,悲剧了。。有空来联系一下。。。谢谢分享
作者: itjavahead    时间: 2012-1-17 17:05
楼主辛苦
作者: muhuaiqian    时间: 2012-1-17 17:16
还是解决不了最基本的问题
作者: 随风而动    时间: 2012-1-17 17:32
验证码 不好解决啊
作者: 栀子天使    时间: 2012-1-18 12:32
都是技术牛人啊,验证码的问题是不好解决,不过至少楼主的思考精神值得我们学习,群里会使用QTP的人有多少?可是能想到并且真正用它来解决实际问题的有多少(除了工作外)?
作者: mylittlek    时间: 2012-1-18 14:22
好东西要一起分享啊!
作者: sxjsph    时间: 2012-1-18 17:19
主要是验证码的问题啦!
作者: lj16329    时间: 2012-1-18 17:25
本帖最后由 lj16329 于 2012-1-18 17:27 编辑


作者: lj16329    时间: 2012-1-18 17:26
本帖最后由 lj16329 于 2012-1-18 17:27 编辑


作者: lj16329    时间: 2012-1-18 17:26
本帖最后由 lj16329 于 2012-1-18 17:34 编辑

都是技术牛人啊,验证码的问题是不好解决,不过至少楼主的思考精神值得我们学习,群里会使用QTP的人有多少? ...
栀子天使 发表于 2012-1-18 12:32


    楼主回复:
感谢您的回复,以后我会推出一系列实战型较强的视频教程,给广大QTP爱好者一个思路。让大家可以将QTP用到实际生活中。

作者: sxjsph    时间: 2012-1-18 17:33
下载下来发现没有data table file,而且少了library.qfl函数库
作者: lj16329    时间: 2012-1-18 17:35
下载下来发现没有data table file,而且少了library.qfl函数库
sxjsph 发表于 2012-1-18 17:33


楼主回复:
    datatable file与 library.qfl函数库在这个脚本里都是不需要的,您无视就可以了
作者: lj16329    时间: 2012-1-18 23:08
楼主回复:

今天又有不少朋友跟我交流该脚本的QTP技术问题,这里非常感谢大家对楼主的支持,谢谢大家!
作者: wslg1010    时间: 2012-1-19 16:21
直接使用QTP,受限制太大,要求太高。。。
作者: lj16329    时间: 2012-1-23 23:01
近期由于铁路购票网站频繁调整,一些检查点可能不准确。其实修改方法很简单,大家只要把脚本弄懂,自然就知道如何去改了
作者: lj16329    时间: 2012-1-23 23:01

作者: 383270701    时间: 2012-1-29 10:16
估计还是需要手动输入验证码并且多次输入 还是JS好 不过感谢楼主的付出
作者: wspc    时间: 2012-1-30 15:56
回复 1# lj16329


    验证码怎么**的啊?
作者: kimiraphael    时间: 2012-1-30 16:24
验证码防的就是自动化工具或外挂的,如果能很容易被QTP识别出来那么这个验证码就有必要要修改的,LZ如果要硬做自动化的话可以读到然后输进去,不过估计有80%以上会是乱码,点登录后可以先检查是否有验证码错误的提示出来,有的话在点击换图片在输入,不过这样脚本执行进度会很慢
作者: lj16329    时间: 2012-1-31 13:41
估计还是需要手动输入验证码并且多次输入 还是JS好 不过感谢楼主的付出
383270701 发表于 2012-1-29 10:16



    楼主回复:
谢谢!
作者: lj16329    时间: 2012-1-31 13:41
回复  lj16329


    验证码怎么**的啊?
wspc 发表于 2012-1-30 15:56



    楼主回复:
验证码问题用QTP确实不好解决。。所以这个脚本手动输入了
作者: lj16329    时间: 2012-1-31 13:43
验证码防的就是自动化工具或外挂的,如果能很容易被QTP识别出来那么这个验证码就有必要要修改的,LZ如果要硬 ...
kimiraphael 发表于 2012-1-30 16:24



    楼主回复:
感谢您的回复!所以楼主觉得还是手动输入效率最快。。。
作者: lj16329    时间: 2012-2-9 13:33
自己顶一下先。。。。。。
作者: this.yangzi    时间: 2012-2-9 17:30
火车订票 的 验证码 很变态 经常抓取不到或者抓取一部分。
作者: lj16329    时间: 2013-1-16 09:54
火车订票 的 验证码 很变态 经常抓取不到或者抓取一部分。
this.yangzi 发表于 2012-2-9 17:30



    QTP抓取验证码不太在行哈
作者: 741678324    时间: 2013-1-17 09:55
给力啊
作者: test-yao    时间: 2013-1-17 21:37
顶起~~~~~~~~~~~~~~~~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2