公司终端机器功能测试自动化实现

发表于:2016-1-15 11:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:yuboan    来源:51Testing软件测试网采编

  经过两个星期全部门的奋战,终于在工厂现场,按客户要求把500台终端机基本功能全部过一遍,顺利出货。
  在这个过程中,依然发现了几个偶发事件,后台对终端机的远程操作偶尔会出现失败,由于项目历史原因,当前的后台维护人员到现在也还没找到根本的原因。但是类似这种工作,对于我们测试团队来说,估计以后还会有很多,虽然不像这次一样要全批量测试,但是以后大批量出货,比如20000台,随机抽样检测1%那也得有两百台,所以对这个工作实现自动化非常有必要,工厂回来的这两天,赶紧跟开发人员沟通了这事,了解了前后端的通讯机制,最终决定方案可行,也出了个demo,废话不说赶紧记录一下过程!
  因为是通过web端点击功能按钮控制终端机的重启,关机,锁屏,解锁,下发节目等操作的,一开始的构想是点击这些按钮应该是会发送一个http协议的post请求来实现控制,然后,再提交一个获取终端最新信息的请求,分析返回结果,判断终端是否已经得到响应。赶紧抓包观察,可以实现,这个可以用urllib2实现。
  但是实现该步骤前,得先有登录操作,才有操作权限,故马上联系开发人员,申请一个万能验证码,解决了登录的验证问题。
  登录操作相当于给服务器提交一个全新的请求,服务器给你分配一个新的sessionID,然后我们客户端用cookie保存了sessionID,当我们后面再请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了,那就说明我们处于登录的状态,具有相应的操作权限。
  所以,这由提出了另外一个问题,我们后面提交具体的功能请求,必须连同之前登录后的cookie一起提交服务器,这样才有可能真正提交成功,实现功能。这部分可以通过urllib2+cookielib实现。
  这样之后,应该就可以就没啥问题了,弄了一个demo,结果POST功能请求后返回的是一个说明操作没有权限的HTML代码。于是再找了一下原因,观察请求头发现还要提交token,于是抓包仔细观察一下登录后的一些动作,原来还有主机发送了token包的步骤
  头文件中的token需与提交请求url中的token一致,才可以返回正确的结果,这可以通过获取url中的值,传参到头文件中,但是问题是这个请求是提交login请求后自动提交的,如何才能获取到该请求中的url信息呢?我想到的是通过利用pcap模块,写一个抓包的方法,当提交了login请求后,调用抓包方法,抓取到该条请求的url信息。
  至此,已经初步实现了通过提交请求操作终端机与验证结果,后续继续完善,将机器ID参数化,多线程运行,实现一键批量测试终端机功能,期待下次出货的时候到现场利用上!
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号