王朝辉(广东工贸职业技术学院,广东 广州 510510)
基于Django的测试工作平台的设计实现
王朝辉
(广东工贸职业技术学院,广东 广州 510510)
摘 要:随着软件质量越来越受到重视,各大互联网企业均对测试提出了更高的要求,与以往手工测试相比,更青睐于自动化测试,本文基于Django web开发框架,快速开发实现了基于B/S(浏览器/服务器)的测试工作平台。该系统远程访问appium服务器,来执行UI层自动化测试,并通过celery可以实现自动化测试任务的分发。
关键词:测试工作平台;Django web开发;appium服务器;自动化测试
随着国内软件产业的高速发展,尤其是百度、腾讯、阿里巴巴三大巨头形成鼎力之势,使得其他中小型企业的发展步履维艰,只有将软件质量做的更好,才能分得一杯羹。软件质量的把控有赖于软件测试人员的把关,测试得越充分才能发现软件更多的bug,从而提高产品质量,但互联网企业迫切希望在保证产品质量的同时,降低软件开发测试成本,国内互联网企业的现实是开发人员与产品人员的比例为5:1,测试人员的不足往往会造成漏测发生。基于此,软件测试迫切的希望能通过借助于自动化测试来弥补这个不足。由于互联网企业长期重开发,轻测试,导致测试严重落后于开发,经过近十几年的发展,测试越来越受到重视,并且借助于敏捷开发已经形成自己的一套模式。目前测试需要全程参与产品的整个生命周期。主要包括需求评审,技术评审,用例设计评审,迭代测试。
1 UI自动化测试框架
目前市场上主流的UI自动化测试的框架有selenium,阿里巴巴的淘测试,testin云测,appium自动化。UI自动化的原理是通过与机器通信,识别当前界面元素,对手机发送指令来完成相应的操作,比如点击,双击,滑动,长按,缩放等。通过综合考虑,本文选取了appium,主要是因为它支持多种语言编写脚本,跨平台支持安卓和iOS,有很专业技术很强的团队在开发维护,不用担心出了问题没人修复,而且还在不断更新,添加新的方法,还有testerhome(测试之家)论坛提供各种问题的技术支持。
2 appium服务器的使用
如前所述,appium是支持多语言并且是跨平台的,本文选取Python作为脚本编写语言。通过Python编写脚本并与appium进行通信来达到自动化测试的目的。
1 Django web开发框架简介
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
2 测试工作平台需求
测试工作平台需要满足的是所有测试人员都可以登录平台编写测试用例,添加设备,创建任务,执行任务,查看报表。为了满足需求,本文采用mysql数据库,采用south管理数据库,south可以灵活的修改数据库结构,而不改变数据。数据库结构设计如下:在model.py中创建相应的model类,然后同步数据库即可生成对应的数据表。数据库中包括用户表,用户表用来存取用户信息,测试人员可以通过用户信息来登录平台;手机表,用来保存当前手机信息;测试用例表,测试用例与人员进行绑定,记录哪一位测试人员创建了测试用例;任务表,用来创建任务,与测试用例、手机和结果进行绑定;结果表明,存取每次任务执行的结果。
3 Web UI设计
Web UI设计采用ligerui前端架构,配合javascript,采用ajax技术和服务端进行数据交互。测试人员可以通过浏览器,直接在web端进行操作,编写用例更加快捷。创建任务界面如下:测试人员只需要填写任务名称,选择自己或者其他人编写的测试用例,选择设备(如果不选择,则智能分配),选择安装包和收件人(任务结束后,报表会以邮件的形式发给收件人),提交任务即可。
本文设计的系统中使用djcelery对任务进行调度,支持定时任务和临时任务,分发的任务会智能选择手机。另外对手机的管理采用云端管理的方式,测试人员只需要将手机信息添加到设备管理,该手机就可以接收分发的任务。
图1 数据库设计
图2 创建任务
本文使用Django web开发框架开发测试工作平台,通过对工作平台的介绍,简要叙述当前社会对自动化测试的需求越来越迫切,根据自身需求选取合适的自动化测试框架,构建web页面来对测试用例和任务进行管理。Django对于数据库采用ORM开发思想,减少sql语句编写,也防止了数据库操作的失误,提高了web开发效率,不得不说,Django是一款十分优秀的web开发框架。
参考文献
[1]赵颖.基于Django的自动化测试框架设计与实现[D].大连理工大学,2012.
中图分类号:TP391
文献标识码:A