第29卷第1期2019年3月django登录注册功能
湖南工程学院学报
Journal of Hunan Institute of Engineering
Vol.29.No.1
Mar.2019
基于RobotFramework的Django框架
自动化测试研究与应用*
康 彦
(安徽城市管理职业学院信息技术学院,合肥230011)
摘 要:当前在Python Web开发中,多使用第三方开源框架进行快速开发,为提高Web框架的自动化测试效率,对Django框架的自动化测试进行了分析和设计,使用Python和RobotFramework设计开发了Django框架自动化测试关键字库DjangoRF
Library.在Django框架自动化测试中,有效地锁定代码缺陷的覆盖范围,更具灵活性.未来将继续设计Django API接口测试关键字库,实现Web GUI功能和Web API前后端的全面测试,并通过Jenkins进行集成自动化测试.
关键词:Robotframework;Python;Django;自动化测试
中图分类号:TP311.5 文献标识码:A 文章编号:1671-119X(2019)01-0041-04
1 Django框架简介
Python的WEB框架有Django、Tornado、Flask等多种,Django与其他WEB框架其优势为:框架本身大而完整,集成了ORM模型绑定、模板引擎、缓存、Session等许多功能.
Django框架采用MVT模型,即:将应用程序分为三个部分:model(模型)、view(视图)和con-troller(控制器)[1].MVC设计模式的核心思想是去耦,这减少了不同代码块之间的耦合,增强了代码的可伸缩性和可移植性,并实现了向后兼容性.Django也是一个MVC框架.但在Django中,接受用户输入的控制器部分由框架本身处理,因此Django更关注模型、模板和视图[2].Django的MTV架构如图1所示.
M代表模型(Model),即数据存取层.该层处理与数据相关的所有事务,如何访问、如何验证有效性,包括哪些行为以及数据之间的关系.
T代表模板(Template),即表现层.该层处理与表现相关的决定,如何在页面或其他类型的文档中显示.
V代表视图(View),即业务逻辑层.该层包含用于访问模型和获取适当模板的相关逻辑.你可以把它看作模型与模板之间的桥梁.
图1 Django的MVT架构
2 Robot Framework简介
Robot Framework是一个基于Python和关键字驱动的开源自动化测试框架,用于验收级别测试和验收测试驱动开发(Acceptance Test Driven De-velopment)[3].它通过表格式的语句,创建测试用
*收稿日期:2018-10-12
基金项目:安徽高校自然科学研究重点项目(KJ2018A0857).
作者简介:康 彦(1982-),男,硕士,副教授,研究方向:软件测试、软件开发.DOI:10.15987/jki.hgbjbz.2019.01.011
湖南工程学院学报2019年
例,并且可以使用Python或Java设计开发自定义测试库来扩展其测试功能.用户还可以使用与创建用例时类似的简单语法,从现有关键字创建新的更高级别的关键字.
Robot Framework是一个通用的、应用和技术的独立框架[4]
.
它具有高度模块化的架构,如图2所示
.
图2 Robot
Framework架构3 Djang
o自动化测试框架设计为了提高Django框架自动化测试的覆盖率、灵活性和锁定代码缺陷的速度,设计了DjangoRFLi-brary关键字库,并使用Robotframework自动化测试框架对Django的用户界面功能及ORM读写进行测试开发.
3.1 DjangoRFLibrary关键字库
基于Python和RobotFramework设计开发了Django的测试库DjangoRFLibrary.库中定义了Django服务启动、停止、用户创建,用户自动登录、注销、内容对象创建、数据查询等关键字.关键字信息表如表1所示.
表1 DjangoRFLibrary关键字库信息表
关键字参数
功能
Autologin As username,p
assword使用指定的用户名和密码自动登录系统
Autologin Logout
注销自动登录用户Create Superuser username,email,p
assword使用参数创建Django超级用户Create User username,email,p
assword,**kwargs使用参数创建Djang
o用户Factory Boy factory,**kwargs用Factory
Boy在Django数据库中创建内容对象Query Set model,**kwarg
s使用参数检索Djang
o ORMStart Django无启动Django服务器Stop
Django无
停止Djang
o服务器3.2 Djang
o GUI功能测试GUI功能测试是为了检验登录界面中系统功能及用户界面是否正确.本节以Django框架管理员登陆界面为例,验证登录界面及登录功能的适用
性[5]
.内容包括:启动Djang
o,创建管理员账号;启动浏览器打开登录界面,检验显示完整性;输入用户名与密码,点击登入按钮,验证登录是否成功.其中,调用DjangoRFLibrary库中关键字完成创建用户账号操作.调用RobotFramework中内建库及Seleni-um2Library关键字库完成其他操作.测试用例代码如图3所示.在命令行中用Pybot命令执行该测试代码,系统会自动显示各测试用例运行结果,在out-p
ut.xml、report.xml、log.xml文件中还包括完整的输出信息、
测试报告和测试日志. Create superuser and test log
in with Web Create Superuser admin admin@admin.com password Go To
MYM{SERVER}/admin Wait until page contains Django administration Input text username admin Input text password password Click Button Log
in Wait until page contains Django administration Page should contain Djang
o administration Page should not contain Please enter the correct user-name and p
assword Log
out图3 登录测试代码
2
4
第1期康 彦:基于RobotFramework的Django框架自动化测试研究与应用
3.3 Django ORM读写测试:
ORM(对象关系映射),它实现数据模型与数据库的分离,也就是说,数据模型的设计不需要依赖于特定的数据库.可以使用简单的配置轻松替换数据库.ORM的作用使得我们可以采用面向对象的思路来设计和使用数据库,使数据库操作更加简单[6].factory_boy是基于thoughtbot团队的factory_bot的测试夹具,它的目的是取代静态的、难以维护夹具与工厂模式中的复杂对象.factory_boy允许您使用为当前测试自定义的对象,只声明特定用于测试的字段,而不是构建完整的测试数据并结合所有可能的边界条件.
Django ORM读写测试是为了检验数据库的读写操作是否正确.本节以Django的用户信息读写为具体实例,验证该Djaogo数据库读写的适用性.内容包括:创建指定用户账号、查询指定用户信息、验证用户信息是否正确[7].其中,调用Factory Boy库完成创建用户账号操作,调用DjangoRFLibrary库中QuerySet关键字完成查询指定用户信息操作.简单查询和复杂多结果查询测试用例代码如图4所示,在命令行中用Pybot命令执行该测试代码,系统会自动显示各测试用例运行结果,在output.xml、report.xml、log.xml文件中还包括完整的输出信息、测试报告和测试日志.
Test query with single parameter
Factory Boy DjangoRFLibrary.tests.factories.UserFactory username=janedoe
MYM{result}=QuerySet django.contrib.auth.models.User username=janedoe
MYM{user}=Get From List MYM{result}0
Dictionary Should Contain Key MYM{user}user-name
Dictionary should contain item MYM{user}username janedoe
Test query with offset and limit(multiple results)
Factory Boy DjangoRFLibrary.tests.factories.UserFactory username=tuser1
Factory Boy DjangoRFLibrary.tests.factories.UserFactory username=tuser2
Factory Boy DjangoRFLibrary.tests.factories.
UserFactory username=tuser3
Factory Boy DjangoRFLibrary.tests.factories.UserFactory username=tuser4
Factory Boy DjangoRFLibrary.tests.factories.UserFactory username=tuser5
MYM{result}=QuerySet django.contrib.auth.models.User offset=2limit=4
Length should be MYM{result}2
MYM{user}=Get From List MYM{result}0
Dictionary should contain item MYM{user}usernametuser3
MYM{user}=Get From List MYM{result}1
Dictionary should contain item MYM{user}usernametuser4
图4 ORM查询测试
4 结语
本文对Django框架的自动化测试进行了分析和设计,使用Python和RobotFramework设计开发了Django框架自动化测试关键字库DjangoRFLi-brary.在Django框架自动化测试中有效地提高锁定代码缺陷的覆盖范围,灵活性和速度.未来将继续设计Django API接口测试关键字库,实现WebGUI功能和Web API前后端的全面测试,并通过Jenkins进行集成自动化测试.
参 考 文 献
[1] 贾志娟.基于Django框架的软件自动化测试分布式部署系统的研究与实现[D].北京邮电大学硕士学位论
文,2012.
[2] 高 峰,杨连贺.Flex技术与Django开发框架的整合研究[J].计算机与数字工程,2010,38(1):94-96
+146.
[3] 朱韶松.基于Robot Framework的自动化测试系统的设计与实现[D].东南大学硕士学位论文,2016.
[4] 张 源.基于Robot Framework的自动化测试系统的设计与实现[D].南京大学硕士学位论文,2015.
[5] 梁思秋.基于Robot Framework的MVC GUI模块自动化测试框架的设计与实现[D].东华大学硕士学位论
文,2015.
3
4
湖南工程学院学报2019年
[6] 王 军,
孟凡鹏.基于关键字驱动的自动化测试研究与实现[J].计算机工程与设计,2012,33(9):3652-3656.
[7] 接 卉,
兰雨晴,骆 沛.一种关键字驱动的自动化测试框架[J].计算机应用研究,2009,26(3):927-929.
Research and Application of Automatic Testof Djang
o Framework Based on RobotframeworkKANG
Yan(School of Information Technology,Anhui Vocational College of City
Management,Hefei 340011,China)Abstract:At present,in the Python Web development,the third-party open source framework is used forrapid development.To improve the efficiency of the automated testing of the Web framework,this articleuses Robotframework to develop an automated testing framework for the Python Web framework Django.The main content includes designing the custom keyword library for the Django framework,and using it toperform GUI function testing and ORM reading and writing tests on the Django framework.Key
words:Robotframework;Python;Django;automated testing檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪
檪檪檪檪檪檪檪檪檪檪檪檪
(上接第32页)
Research on Conventional Hot Rolling
Processof TA18 Titanium Alloy
CoilLIU Zheng-qiao1,WANG Jing2,HE Guan-j
un2,JIANG Meng-ling1
(1.Hunan Xiangtou Goldsky
Titanium Metal Co.,Ltd.Changsha 410205,China;2.Hunan Valin Liany
uan Iron &Steel Co.,Ltd.Loudi 417000,China)Abstract:TA18is a kind of near-alpha-type titanium alloy with low alloying composition an
d excellentproperties,which has been widely used in the field of military industry and aviation as structural parts andliquid medium pipes.Compared with single stand reversing mill,conventional HSM has the advantages ofhigh efficiency and quality.In this paper,the influence of different reduction conditions on the quality ofTA18hot rolled strip is studied.The results show that low rolling reduction of FM is beneficial to thick-ness control of TA18titanium alloy coil,and at the same time,obtaining coil with better edge quality andmicrostructure,decreaseing the strength and increaseing the plasticity of TA18titanium alloy coil,which-is,better to meet the processing
requirement of customers.Keywords:conventional HSM;TA18titanium alloy coil;drafting
schedule;edge quality4
4
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论