Web自动化测试的验证码生成与应用

来源 :企业科技与发展 | 被引量 : 0次 | 上传用户:kantstop
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【关键词】神经网络;验证码生成;模式识别
  【中图分类号】TP311.5 【文献标识码】A 【文章编号】1674-0688(2021)10-0043-03
  0 引言
  互联网为人类的异地交流提供了通信的可能性和实现手段,在线交流、电子支付这些方法走入人们工作和生活的日常,成为我们生活的一部分。在大多数人享受便利的同时,也有少数不法分子利用这些手段进行非正当的互联网使用,比如充当水军对目标网站输入大量恶意评论、恶意注册和占用网络资源等。为了维持网站的正常运营、保障其正常服务,设计人员可以在用户的网站资源使用环节中加入验证码识别,比如进行用户注册、修改用户资料、发表留言等操作时,需要用户手动输入,这样就能避免受到相当一部分自动化软件的攻击。
  验证码技术实际上是为了在不知情的情况下鉴别人与机器的技术,英文简称是CAPTCHA,即Completely Automated Public Turing test to tell Computers and Humans Apart,就是全自动区分计算机和人类的图灵测试[1-2]。验证码的实现方式一般分为两种,即“读取式”和“生成式”[3-4]。由于简单的验证码已经不能满足需求,为了增加验证码被识别的难度,人们开始加入扭曲字符,或者加入线段和各种“斑点”用于增加机器识别的难度,同时出现了运算公式之类的验证码,使得机器“看懂”验证码的难度增大了很多。
  与此同时,验证码的使用也给Web自动化测试带来了相当大的挑战——在区别远程用户是人类还是计算机的同时,也切断了计算机的进入,而在现代化软件工程的实施过程中,常常会用到自动化的手段进行测试。以目前的技术还不能区分自动化测试与自动化攻击的访问手段,或者说从现象上看,从服务器角度来看这两者是一样的。那么,为了正常进行自动化测试,只能依靠在软件中加入验证码识别的环节,提高验证码识别准确率就成为提高Web自动化测试效率的重要保障。
  1 Web自動化测试技术
  自动化软件测试就是把以人力为主的软件测试工作用计算机自动执行的机器工作方式的过程。Web自动化测试就是对于基于Web页面工作的软件进行自动化测试的技术,它不仅能节约人力、财力和资源成本,而且能节约时间成本,从而大大提高软件的测试效率。随着软件生产的工程化、规模化,测试流程的不断规范化,以及软件测试技术逐步精细化,自动化软件测试已经成为软件工程开发中的一种重要手段。自动化测试可以分为单元测试、集成测试及系统测试等层次,每个层次都有其实现的框架技术。
  Web自动化测试依赖的方法通常包括Web页面元素定位、获取用户操作行为及模拟用户操作行为。其中,Web页面元素定位常用的页面元素属性有id、name、classname、linktext、XPath和CSS Selector等,即依据元素属性的唯一性或者局部唯一性通过某种方法查找Web页面元素,比如标签、文本框、超链接等。获取用户操作是通过读取页面事件捕捉在页面上发生的某种操作,比如按键上的鼠标单击、悬停、按键等;模拟用户操作则是通过软件手段模拟用户页面上的单击、键盘按键、文本框输入等操作。执行Web自动化测试通常需要依赖一个运行Web页面加载的软件组件,如WebDriver。
  2 基于神经网络的验证码技术
  在神经网络学习中,通常为了提高网络的性能,常规做法就是增加网络深度与宽度,但也会带来一定的影响,比如巨大的参量增加了处理的复杂性,并且当输入的数据量不够大时,目标网络容易出现过拟合;当网络深度增加到一定程度时,就会失去梯度递变带来的优势,即所谓的梯度消失现象,而inception网络则能较好地解决上述问题。
  2.1 inception结构神经网络介绍
  神经网络是由大量节点或神经元组成的操作模型[5],每个节点代表一个特定的输出函数,称为激活函数[6]。网络的输出根据网络的连接、权值和激励功能的不同而不同。网络本身通常是某种算法或函数的近似或者是逻辑策略的表达式。神经网络是一种机器学习算法,它可以通过结构网络实现对非线性问题的无限逼近。近年来,基于卷积神经网络(CNN)的算法用于从视觉数据中确定物体的精确位置,具有更高的工作效率[7]。
  卷积神经网络是一种多层结构的前馈神经网络,它的结构包括卷积层、池化层与激活函数,其特点是可以把图片数据作为一个整体进行特征识别[8-10]。卷积层由卷积核形成,通过各个卷积核提取图像的特定特征。
  2.2 应用卷积神经网络的识别
  卷积神经网络应用在图像识别的基本原理如下:首先,由卷积层提取图片的特征,比如最初一层卷积用来提取线条、边缘等特征,下一层卷积提取线条的组合特征,再往后每层都是提取前一层的融合特征,通过稀疏权重、等变表示及参数共享这样的卷积运算提高效率。其次,有池化层对卷积层获得的特征进行二次提取,主要是通过池化函数对指定位置的相邻输出总体统计特征代替网络的输出。最后,池化层之后的全连接层的每个神经元均与相邻上层的神经元相连,最终传递给输出层。
  3 基于inception的ASCII码集识别方法
  为了实现验证码识别,最开始要对验证码进行分割,然后采取对单个字符进行识别,从而达到识别整张验证码的目的,但是研究人员在生成验证码的过程中发现一个问题,就是有很多验证码的字符是连在一起的(如图1所示)。
  实际上很难进行分割,因为每一个字符的边界较难确定。因此,研究人员改变了思路,采用了多任务学习(Multitask Learning)的一种方式,这样做就是可以把处理过的验证码照片放入网络进行训练,然后直接出来验证码中4个字符的预测结果,降低了整体的复杂度。图片总的处理流程使用的是inception-v4模型网络结构(如图2所示)。   最后将获得4个结果,对每个结果计算损失,然后求其算数平均,再调整参数对算数平均进行优化,使其总体达到一个完美的结果。整个网络逻辑结构如下:我们训练4个分类器,对应验证码中的4个字符,第一个输出对应的是第一个字符的预测,其他的输出以此类推,这样就可以在使用过程中获得方便。
  还有一个问题是数据标注过程,在生成验证码的过程中,对图片的命名就是图片中字符,因此在写标注程序的时候,就是对命名字符串的切割,然后将字符转化成对应数字,本文在转换成数字时用到的是ASCII码,python中有计算出对应字符ASCLL码的函数ord()。
  3.1 样本的生成
  作为一个神经网络的应用,第一步是找到数据集,本实验所需要的数据集就是各种各样的验证码,因此使用ImageCaptcha库进行验证码的生成,研究人员生成了10 000张图片的样本,类似于图3。
  3.2 样本的降噪处理
  接下来是生成tf-record文件,在生成文件的过程中,研究人员进行了灰度处理(如图4所示),即黑白图片,也可以进行去噪处理,通过对图片进行腐蚀操作(如图5示),首先去掉其中的噪点,然后进行膨胀操作(如图6所示)。
  扩大变小的字母线条,从以上图片中我们明显看到验证码中的噪点消失,这为后续操作中对网络准确率的提升打下了基础。
  图像处理的目的有两点:一是在不损坏原有图片含义的情况下,减小图片的计算大小,因为彩色图片有3个通道(channel),但是色彩与实验无关,所以研究人员进行灰度处理后,图片就有一个channel,这样就减少了网络的计算。二是去掉图像中的噪点,突出研究人员需要的特征。
  对图像进行标记,不同的字符有不同的数字与之对应,字符的顺序可以自行定义,一旦定义完成就不可在标记的过程中改变,那么定义字符的数量就会作为网络最后一层神经元的数量,注意这里是说每一个输出的神经元的个数。同时,研究人员会在训练的过程中将标记的数字转化成tensorflow中one_hot的形式,便于用于网络的训练,输出4个预测值,与标注的实际值进行对比,计算loss值,这里的计算采用交叉熵,使用的是Tensorflow中的softmax_cross_entropy_with_logits函数,本文采用的优化器是AdamOptimizer,当然也可以用其他优化器。
  4 Web自动化测试中的验证码识别应用
  对以上方法研究的基础上,我们在Web自动化测试中可以应用图像识别方法(如图7所示),在程序中把某科研管理系统的页面载入Web引擎测试,用输入识别后的验证码并尝试登录,图8是登录成功的页面。
  5 結语
  本文针对Web自动化测试中的验证码的应用实践问题进行了部分验证码生成与识别研究。在分析Web软件的自动化测试基本需求的基础上,通过ImageCaptcha库生成样本数据集,进而搭建了一种基于inceptionv4的卷积神经网络,对验证码进行图像处理、降噪及标记,通过深度学习算法执行网络训练,得到识别结果,并通过具体实例给出了在Web自动化测试中对该方法的实际应用和验证。此外,这种识别方式也可以扩展用于其他应用,比如车牌识别,可以取消传统识别过程中一些步骤,例如字符切割,但是要注意车牌开头的汉字需转换成数字,而要转成多少,取决于设计者定义。
  本文的研究还存在不足之处,研究人员发现在训练过程中需要的时间太长,可以根据实际需求构建简单的网络模型进行训练。
  参 考 文 献
  [1]田超雄.文本类验证码识别方法研究[D].西安:西北大学,2019.
  [2]程莉莉.基于ELM算法的验证码软件可用性研究[D].湘潭:湘潭大学,2016.
  [3]杨彬.Web自动化测试中验证码的实现方法[J].信息技术与标准化,2010(11):39-41.
  [4]司徒毅.基于LDA变换的验证码识别技术初探[J].广东广播电视大学学报,2009,18(1):102-108.
  [5]邱意,陈劲杰.基于卷积神经网络的锌渣识别方法研究[J].软件工程,2021,24(1):2-5.
  [6]孙诚,王志海.社会网络中基于神经网络的链路预测方法[J].数学建模及其应用,2017,6(4):10-17.
  [7]S. rubin bose VSK.Efficient Inception V2 Based D-eep Convolutional Neural Network for Real-time Hand Action Recognition[J].Iet Image Processing,2020,14(4):688-696.
  [8]崔新,白培瑞,张策,等.一种基于端对端深度卷积神经网络的验证码识别方法[J].山东科技大学学报(自然科学版),2020,39(2):111-117.
  [9]王昊,康晓凤,卢志科,等.基于深度学习的验证码识别Web应用平台[J].软件工程,2020,23(4):41-43.
  [10]王海艳,董茂伟.基于动态卷积概率矩阵分解的潜在群组推荐[J].计算机研究与发展,2017,54(8):1853-1863.
其他文献
南青岛大学医学院附属烟台毓璜顶医院耳鼻咽喉头颈外科张庆泉教授主编,耳鼻咽喉头颈外科专业、医学导航设备专业、麻醉专业、手术室护理专业及耳鼻咽喉头颈外科护理专业等30余位专家参与编写的《耳鼻咽喉头颈外科影像导航技术》一书已于2013年9月由人民卫生出版社出版发行。该书16开本,292千字,分为总论、手术导航系统简介、影像导航技术的临床应用、影像导航技术的麻醉、影像导航外科手术室的布局及术中配合、影像导
目的 使用婴幼儿有意义听觉整合量表(Infant-Toddler Meaningful Auditory Integration Scale,IT-MAIS)对使用普通话的听力正常婴幼儿的听觉能力发育正常值进行分析,为听力损失患儿的听觉能力评估提供正常值对照,为制定合理的听力康复方案提供依据.方法 共有北京地区183名普通话语言环境婴幼儿参与本研究,经病史采集、耳聋高危因素排查和耳声发射检查,共有
目的通过与环孢菌素A(CsA)比较,评估环孢菌素A-纳米乳(CsA-NP) 预处理保护猪脂肪组织来源干细胞(ASC)抗凋亡作用及可能机制。方法采用过氧化氢(H2O2)体外诱导ASC凋亡模型, 将ASC细胞分为6组:对照组(无特殊干预),单纯H2O2组,CsA或CsA-NP 0.1 mg/ml+ H2O2组,CsA或CsA-NP 1.0 mg/ml+ H2O2组,CsA或CsA-NP 5.0 mg/
【关键词】木薯;小麦;酒精;发酵;DDGS  【中图分类号】TQ223.122 【文献标识码】A 【文章编号】1674-0688(2021)10-0037-03  酒精是目前世界上生产历史最悠久、产量最大的发酵工业产品[1]。木薯是广西丰富的生物质资源,符合国家的非粮能源战略。我国人口众多、资源贫乏,在较长的一个时期里,国家的粮食供应还将处于平衡偏紧状态,决定了我国只能发展以非粮为主的生物燃料乙醇
期刊
目的评价国产阿加曲班在择期经皮冠状动脉介入治疗(PCI)中应用的安全性及有效性。方法连续入选行择期PCI的冠心病患者300例。采用随机数字法,将患者分为普通肝素组(150例)和阿加曲班组(150例)。普通肝素组以100 U/kg普通肝素抗凝;阿加曲班组先静脉注射国产阿加曲班负荷量(200 μg/kg),随后以350 μg·kg-1·h-1维持至手术结束。分别在给药后10、60 min和手术结束时检
目的探讨腰围身高比值(WHtR)评价我国成年人群严重中心性肥胖和体质量过低的适宜切点。方法采用国家“八五”和“九五”攻关课题2次横断面调查的资料,共入选35~59岁人群30 630名。以预测心血管病危险因素异常(包括高血压、空腹血糖异常、总胆固醇升高、高密度脂蛋白胆固醇过低)及危险因素聚集(同一个体同时具有上述2个及以上危险因素)的特异度超过90%时所对应的WHtR值,作为严重中心性肥胖的WHtR
【关键词】烟草;麻片;运输;RFID;仓储;识别;跟踪  【中图分类号】TP11 【文献标识码】A 【文章编号】1674-0688(2021)10-0040-03  0 引言  烟包储存对烟叶质量和仓储管理有较大影响。采用传统方式运输烟草部分是采用麻布袋进行包装,由于麻布袋具有极高的吸水性,运输与仓储环节存在水分吸收和蒸发的现象,并且在运输时,多个麻布袋会堆叠存放,造成烟叶被压坏[1-4]。如果使
期刊
目的评价扩大室间隔肥厚心肌切除术(扩大Morrow术)治疗肥厚型梗阻性心肌病后,并发完全性房室传导阻滞的病例特点及其预防和处理。 方法回顾性分析1996年10月至2011年12月,阜外心血管病医院手术治疗的160例肥厚型梗阻性心肌病患者中并发完全性房室传导阻滞的10例患者的临床资料。其中男6例,女4例,年龄13~60(45.4±15.8)岁,左心室流出道(left ventricular outf
冠心病是当前最主要的心血管疾病,这些与高血压、高脂血症、吸烟和糖尿病等动脉粥样硬化危险因素有关。急性心肌梗死(AMI)是冠心病的一种严重表现类型,其具有发病急、并发症多、死亡率高的特点。据保守估计,美国急性ST段抬高型心肌梗死(STEMI)年发病率约为50万,尽管近10年来随着医疗水平的提高其病死率有所下降,但它仍是急性冠状动脉综合征中死亡率最高的一种临床类型。每年死于AMI及其并发症的人数已超过
期刊
目的比较心肺运动试验测定峰值氧耗量(VO2max)与纽约心功能分级(NYHA)、6 min步行距离(6MWD)和氨基末端利钠肽前体(NT-proBNP)与心脏指数(CI)的相关性,了解VO2max在评价肺动脉高压患者心功能中的作用。方法入选经右心导管检查确诊的第一、四和五大类肺动脉高压患者,比较VO2max和6MWD、NYHA心功能分级、NT-proBNP与CI的相关性。以CI 2.2 L·min