.
搜索
相关推荐
热门标签

杭州app开发:银行抢单、火车票抢票App怎么开发?

时间:2020-01-17 11:46:28

对于抢单、抢票大家都不陌生,因为大家都用过,智行、高铁管家都是这一类的代表,就在春节将至,github上开源的火车抢票App也着实火了一把。

坊间有这样的传闻,12306加大了抢票软件的打击力度!可以说定点实现了许多软件无效化,为此,如果你是个懂代码的Boy,那么在github上用这个开源代码为自己抢票,反而能够出奇制胜,因为你是单个人抢票,不会被封IP,有些人只花了一点时间就为自己抢到了一份宝贵的回家票券。

为什么要开发抢单App?

大家都要工作,总不能每天盯着12306官方软件去抢吧,这样子反而会影响工作进度,那么为了专心工作的你,可能春节都买不到回家的票,这才是最悲催的!为此就得使用上这些高科技。

有哪些防止抢单的手段?

既然要做这么一款App,就得知己知彼百战不殆,目前市面上会有许多反爬策略,反抓取接口分析的策略,那么我们不妨来了解下,现在有哪些技术手段可以限制住我们。

1)有些App会禁止使用代理打开,如果你开了代理,那么进去就是一片空白的界面。这种情况,完全就是不让你抓包,通过抓包分析协议,可以最快速的实现抢单票的手段。当然了,如果遇上银行级的App,我劝你还是放弃,因为所有的通信数据,都将会进行一道加密,没有秘钥是无法破解的。

2)还有些App会防止Root模式下打开,通过手机Root,可以获得许多系统级别的权限,为此也方便了我们研究抢单软件的开发,这一招实在是高!

3)从服务器上着手,进行接口上的请求速率限制。如果检测到你接口请求频繁,就断定认为你非人工操作。

4)IP黑名单,目前有许多大企业都会获取到国内一些云服务器商的IP段,进行限制。你如果要抢单总不能拿国外的服务器来使用,这样子网络延迟就让你错失好几单了。

知道了这些手段,那么我们也分分钟钟可以研究出各种对策,所谓道高一尺魔高一丈!

我们该怎么开发一款抢单App?

要实现抢单,有两种手段,一种是分析协议;另一种是自动化。分析协议我就不多说了,好处多多,但是对于大企业是没效果的。我们还是从自动化这一点着手,由于自动化是高仿真模拟人类去操作App,这样子的方式就是一个万金油的解决方案。

1.Appnium:这是一个热门的框架,有着高活跃度的开源社区,更新速度很快,前些日子更新了1.16版,许多人都非常喜欢使用它,那是因为它底层和Selenium相似的用法,降低了学习成本。测试人员可以通过RobotFramework来了解它,可以很快的上手。

说下它的原理:在电脑端建立server,通过http方式发送命令,调用adb、uiautomater接口等方式操作App。知道了原理,那么你一定会思考和关心它的运行效率,不得不说,它会存在一些缺点,首先http请求的方式会有延迟;其次是http命令存在覆盖的问题,如果多个命令并发发出的情况下,在App上只可能执行其中一个,其他几个命令则会被覆盖或丢失,这相当致命;最后Appnium底层基于nodeJs,存在内存泄露等问题,时间久了会直接崩掉。怎么解决这个问题?网上分析指出,通过调大nodejs的内存大小,可以缓解这一问题,但是治标不治本。这款工具在windows上执行exe,时间久了也会自动崩掉。总之,它仍然是一款适合开发测试人员使用的工具,在黑盒方面他有着独特的天然优势,尤其是跨平台、跨App以及跨语言。

2.AutoJs:是一款非常棒的开源脚本语言,它基于javascript,优点显而易见:受众群体非凡。前端工程师是目前互联网行业中群体最广泛、最被大公司所喜爱的职业。阿里、腾讯这样的大公司都非常喜欢Js。它的原理是基于安卓的辅助服务AccessibilityService,显然这个方案不适用于IOS。不过它可以离线自动化,在手机上安装apk,然后拔掉USB也可以继续运行,这显得它十分小巧,讨人喜欢。

3.uiautomator1+2:目前版本已经到第二代了,第一代由于原理原因直接被废弃,第二代开始采用安卓项目的方式来运行,可以打包成apk,好处多多。2代基于 Instrumentation,可以获取应用Context,使用 Android服务及接口,效率大幅度提升。毕竟是谷歌自家开发的,如果从性能角度考虑,肯定是最佳选择,不过它这门语言开发出来似乎对安卓开发人员更友好,当然,它也可以通过python的方式进行调用。适用于黑盒测试,可跨应用。

4.ESpresso:它来自谷歌最新发布的一款自动化测试工具,小编认为它的出现,无疑是和uiautomator产生了冲突,既然它诞生了,就有它存在的道理。ESpresso只能通过安卓代码来实现,和uiautomator2一样搭建Junit就可以快速运行,它更适合于白盒测试,由于设计上通过事件驱动,在性能方面远远超出其他自动化框架。虽然小编试图使用它来实现一个黑盒测试的工具,不过目前没有找到很好的方法来达到这一目的。

5.更多:自动化测试工具实在是太多,不过你总能找到一款属于你的。小编自己整理了差不多20个自动化框架,它们有些在国外很热门,在国内却很少被人提及。只要掌握了这些工具,就能够为我们的自动抢单App软件赋能。创造价值。