CN112035371A - 一种web应用作业的自动评分方法 - Google Patents

一种web应用作业的自动评分方法 Download PDF

Info

Publication number
CN112035371A
CN112035371A CN202010923217.5A CN202010923217A CN112035371A CN 112035371 A CN112035371 A CN 112035371A CN 202010923217 A CN202010923217 A CN 202010923217A CN 112035371 A CN112035371 A CN 112035371A
Authority
CN
China
Prior art keywords
project
test case
web
database
web application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010923217.5A
Other languages
English (en)
Other versions
CN112035371B (zh
Inventor
方宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu Maritime Institute
Original Assignee
Jiangsu Maritime Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu Maritime Institute filed Critical Jiangsu Maritime Institute
Priority to CN202010923217.5A priority Critical patent/CN112035371B/zh
Publication of CN112035371A publication Critical patent/CN112035371A/zh
Application granted granted Critical
Publication of CN112035371B publication Critical patent/CN112035371B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B7/00Electrically-operated teaching apparatus or devices working with questions and answers
    • G09B7/02Electrically-operated teaching apparatus or devices working with questions and answers of the type wherein the student is expected to construct an answer to the question which is presented or wherein the machine gives an answer to the question presented by a student

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种web应用作业的自动评分方法,给定一个文件目录,其下有学生提交的javaweb作业项目代码压缩文件,作业项目名称,项目测试用例库,最终给出每位同学作业项目的得分及出错信息。本发明能够对学生提交的javaweb作业项目代码,自动评测,给出分数和错误信息,能够安全、可靠的同时测评多个学生的web应用。

Description

一种web应用作业的自动评分方法
技术领域
本发明涉及一种web应用作业的自动评分方法。
背景技术
现有技术中,申请号为2016106735890、专利名称为一种程序作业自动批改的方法和装置的中国专利专利,申请号为201710866537X、专利名称为一种程序作业评测方法和装置的中国发明专利,公开的都是关于作业的批改专利,上述两个技术都是对文本终端类程序进行评分,而不是对web应用类作业程序进行评分。
发明内容
为解决现有技术存在的缺陷,本发明提供一种web应用作业的自动评分方法。
为了解决上述技术问题,本发明提供了如下的技术方案:
本发明提供一种web应用作业的自动评分方法,包括以下步骤:
S0、系统启动,初始化,启动多个web应用服务器;
S1、给定学生javaweb作业项目所在文件夹、作业项目名;根据作业项目名,在项目测试用例库中查询并加载相应项目的测试用例;
S2、遍历指定文件目录下的学生javaweb作业项目的压缩文件,解压缩,验证javaweb项目格式是否符合要求,若符合要求,则进入步骤S3;若解压缩失败或格式不对,则保存相应错误信息,作业计0分,退出后续处理;
S3、预编译作业项目代码中的jsp文件,将其转写成java类代码文件,然后进入步骤S4;若预编译失败,则保存错误信息,作业计0分,退出后续处理;
S4、扫描作业项目中java代码和配置文件,使用正则表达式发现数据库驱动连接字符串,将其中的数据库名改为:原库名+随机生成的不重复的4位整数;
S5、编译作业项目中的java代码,生成java类文件,然后进入步骤S6;若编译失败,则保存错误信息,作业计0分,退出后续处理;
S6、将整个作业项目打包成可在web服务器下运行的文件,并将其部署到目标web服务器上;
S7、根据作业项目的测试用例配置,执行数据库表初始化代码,建库,建表,初始化库账号,表数据,其中数据库名在步骤S4中生成;
S8、指令web服务器启动作业项目web应用,获取并分析项目应用启动时的输出,如果应用启动有错误,则保存错误信息,转到“系统清理”;
S9、根据测试用例,系统启动指定浏览器,驱动浏览器访问web应用网页,在web页面中输入数据和操作后,发出请求并获取测评点信息,将结果与期望结果比较,若相符,则给予相应的分数;如果不符,则记录下不符的信息,该测试用例得分为0;如果对web服务器请求超时,则保存超时信息,结束该测试用例;
S10、根据评分公式,计算作业项目分数并保存;
评分公式如下所示:
S=k1*a+k2*b+k3*c k1+k2+k3=1
a是项目编译通过后的得分,b是web项目能加载运行的得分,c是测试用例的得分;K1是a的权重,K2是b的权重,K3是c的权重,范围0-1;
S11、系统清理:关闭浏览器,在web应用服务器中停止并卸载被测作业项目应用,删除作业项目使用的数据库。
作为本发明的一种优选技术方案,测评点信息包括http响应状态码、页面指定元素及属性、浏览器输出页面截图、数据表中相应数据和url请求的响应时间。
作为本发明的一种优选技术方案,与期望结果的比较包括:
网页元素属性值的比较方式,包括相等、包含或正则匹配;
图片的比较,包括与预留标准网页图片的直接像素比较、图片phash值相似比较。
作为本发明的一种优选技术方案,测试用例包括以下内容:数据库初始化脚本,页面url,超时限值,页面元素,操作及值,测评点、测评方法及期望值。
本发明相较于现有技术,具有以下的有益效果:
本发明能够对学生提交的javaweb作业项目代码,自动评测,给出分数和错误信息,能够安全、可靠的同时测评多个学生的web应用。
具体实施方式
以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
为了达到本发明的目的,在本发明的其中一种实施方式中提供一种web应用作业的自动评分方法,包括以下步骤:
S0、系统启动,初始化,启动多个web应用服务器;
S1、给定学生javaweb作业项目所在文件夹、作业项目名;根据作业项目名,在项目测试用例库中查询并加载相应项目的测试用例;
S2、遍历指定文件目录下的学生javaweb作业项目的压缩文件,解压缩,验证javaweb项目格式是否符合要求,若符合要求,则进入步骤S3;若解压缩失败或格式不对,则保存相应错误信息,作业计0分,退出后续处理;
S3、预编译作业项目代码中的jsp文件,将其转写成java类代码文件,然后进入步骤S4;若预编译失败,则保存错误信息,作业计0分,退出后续处理;
S4、扫描作业项目中java代码和配置文件,使用正则表达式发现数据库驱动连接字符串,将其中的数据库名改为:原库名+随机生成的不重复的4位整数;
S5、编译作业项目中的java代码,生成java类文件,然后进入步骤S6;若编译失败,则保存错误信息,作业计0分,退出后续处理;
S6、将整个作业项目打包成可在web服务器下运行的文件,并将其部署到目标web服务器上;
S7、根据作业项目的测试用例配置,执行数据库表初始化代码,建库,建表,初始化库账号,表数据,其中数据库名在步骤S4中生成;
S8、指令web服务器启动作业项目web应用,获取并分析项目应用启动时的输出,如果应用启动有错误,则保存错误信息,转到“系统清理”;
S9、根据测试用例,系统启动指定浏览器,驱动浏览器访问web应用网页,在web页面中输入数据和操作后,发出请求并获取测评点信息,将结果与期望结果比较,若相符,则给予相应的分数;如果不符,则记录下不符的信息,该测试用例得分为0;如果对web服务器请求超时,则保存超时信息,结束该测试用例;
具体的,测评点信息包括http响应状态码、页面指定元素及属性、浏览器输出页面截图、数据表中相应数据和url请求的响应时间。
与期望结果的比较包括:
网页元素属性值的比较方式,包括相等、包含或正则匹配;
图片的比较,包括与预留标准网页图片的直接像素比较、图片phash值相似比较;
S10、根据评分公式,计算作业项目分数并保存;
评分公式如下所示:
S=k1*a+k2*b+k3*c k1+k2+k3=1
a是项目编译通过后的得分,b是web项目能加载运行的得分,c是测试用例的得分;K1是a的权重,K2是b的权重,K3是c的权重,范围0-1;
S11、系统清理:关闭浏览器,在web应用服务器中停止并卸载被测作业项目应用,删除作业项目使用的数据库。
基本输入:
给定一个文件目录,其下有学生提交的javaweb作业项目代码压缩文件,作业项目名称,项目测试用例库。
基本输出:
每位同学作业项目的得分及出错信息。
根据检索,尚未见到能对学生web应用进行自动批改并评分的应用系统。系统采用的主要技术是基于黑盒的web应用自动化测试技术,但针对学生web应用作业测评的特点,做了相应增强,其特点是能够安全、可靠的同时测评多个学生的web应用,并给出分数。主要特征如下:
1、考虑到学生提交的被测评应用可能含有恶意或错误代码,会导致测评系统本身失败,所以在操作系统、应用服务器、应用程序、数据库等多方面采取了有效措施,保证测试程序和系统的安全持续运行。
2、支持同时测评多个学生web应用,并且互不干扰。主要技术措施是:提供应用服务器池,一个web应用服务器同时只运行一个被测web应用,被测web应用拥有唯一的数据库,不同学生web应用作业的数据互不影响。
3、对jsp代码进行预编译,及早发现代码问题。(在常规情况下,jsp代码是发布到应用服务器且被访问后,才被应用服务器编译成类文件的)。
4、测试用例结构的设计(“测试用例设计”),提供多种测试点、判断比较方式的组合。
系统实现:
使用java编码实现了学生javaweb应用作业项目(支持eclispe项目格式)的评分系统,Web服务器使用tomcat服务器,数据库使用mysql。
编写build.xml文件,通过ant实现了作业项目代码中jsp文件代码的预编译、java代码编译、将作业项目打包成war、部署到tomcat服务器的任务。使用ant预编译jsp,将jsp转成java代码的任务定义如下:
<taskdef classname="org.apache.jasper.JspC"name="jsp2java">
系统使用webdriver与浏览器交互,操控页面元素,定位并获取页面元素信息,截取保存页面图片。
测试用例包括以下内容:数据库初始化脚本,页面url,超时限值,页面元素(id、name、xpath、css定位),操作及值(如输入文本),测评点、测评方法及期望值等。参考TestNG测试框架,支持测试用例间的依赖关系,同时避免了循环依赖。
系统维护一个tomcat服务器池,同时运行多个tomcat服务器实例,可以提高学生作业测评性能,实现了应用服务器级的隔离,提高了评测的安全性、可靠性。系统会定时检测tomcat服务器是否正常响应,如果长时间无响应,则会杀掉该服务器进程并重启。
多层安全机制:
为了防止被测学生应用代码互相影响或故意破坏系统,采取以下措施:
1、系统可以以docker方式部署运行,实现整个系统的操作系统级别的安全隔离。
2、多tomcat实例运行,一个被测应用对应一个tomcat,实现应用服务器级隔离。
3、以安全模式运行tomcat,利用java的安全管理器机制,通过改写conf/catalina.policy文件内容,限制tomcat服务器中应用程序对文件、网络、数据库等资源的存取,实现被测评应用级别的安全控制。通过设置tomcat启动参数中的内存相关项,控制应用可以使用的内存大小。
4、每个被测web应用在数据库服务器中对应一个数据库实例,账号权限只能存取该数据库实例,实现了应用数据库级别的隔离。
该技术可以扩展到对其它类型web应用(如.net\php)的测评上。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种web应用作业的自动评分方法,其特征在于,包括以下步骤:
S0、系统启动,初始化,启动多个web应用服务器;
S1、给定学生javaweb作业项目所在文件夹、作业项目名;根据作业项目名,在项目测试用例库中查询并加载相应项目的测试用例;
S2、遍历指定文件目录下的学生javaweb作业项目的压缩文件,解压缩,验证javaweb项目格式是否符合要求,若符合要求,则进入步骤S3;若解压缩失败或格式不对,则保存相应错误信息,作业计0分,退出后续处理;
S3、预编译作业项目代码中的jsp文件,将其转写成java类代码文件,然后进入步骤S4;若预编译失败,则保存错误信息,作业计0分,退出后续处理;
S4、扫描作业项目中java代码和配置文件,使用正则表达式发现数据库驱动连接字符串,将其中的数据库名改为:原库名+随机生成的不重复的4位整数;
S5、编译作业项目中的java代码,生成java类文件,然后进入步骤S6;若编译失败,则保存错误信息,作业计0分,退出后续处理;
S6、将整个作业项目打包成可在web服务器下运行的文件,并将其部署到目标web服务器上;
S7、根据作业项目的测试用例配置,执行数据库表初始化代码,建库,建表,初始化库账号,表数据,其中数据库名在步骤S4中生成;
S8、指令web服务器启动作业项目web应用,获取并分析项目应用启动时的输出,如果应用启动有错误,则保存错误信息,转到“系统清理”;
S9、根据测试用例,系统启动指定浏览器,驱动浏览器访问web应用网页,在web页面中输入数据和操作后,发出请求并获取测评点信息,将结果与期望结果比较,若相符,则给予相应的分数;如果不符,则记录下不符的信息,该测试用例得分为0;如果对web服务器请求超时,则保存超时信息,结束该测试用例;
S10、根据评分公式,计算作业项目分数并保存;
评分公式如下所示:
S=k1*a+k2*b+k3*c k1+k2+k3=1
a是项目编译通过后的得分,b是web项目能加载运行的得分,c是测试用例的得分;K1是a的权重,K2是b的权重,K3是c的权重,范围0-1;
S11、系统清理:关闭浏览器,在web应用服务器中停止并卸载被测作业项目应用,删除作业项目使用的数据库。
2.根据权利要求1所述的web应用作业的自动评分方法,其特征在于,测评点信息包括http响应状态码、页面指定元素及属性值、浏览器输出页面截图、数据表中相应数据和url请求的响应时间。
3.根据权利要求1所述的web应用作业的自动评分方法,其特征在于,与期望结果的比较包括:
网页元素属性值的比较方式,包括相等、包含或正则匹配;
图片的比较,包括与预留标准网页图片的直接像素比较、图片phash值相似比较。
4.根据权利要求1所述的web应用作业的自动评分方法,其特征在于,测试用例包括以下内容:数据库初始化脚本,页面url,超时限值,页面元素,操作及值,测评点、测评方法及期望值。
CN202010923217.5A 2020-09-04 2020-09-04 一种web应用作业的自动评分方法 Active CN112035371B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010923217.5A CN112035371B (zh) 2020-09-04 2020-09-04 一种web应用作业的自动评分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010923217.5A CN112035371B (zh) 2020-09-04 2020-09-04 一种web应用作业的自动评分方法

Publications (2)

Publication Number Publication Date
CN112035371A true CN112035371A (zh) 2020-12-04
CN112035371B CN112035371B (zh) 2022-10-04

Family

ID=73590667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010923217.5A Active CN112035371B (zh) 2020-09-04 2020-09-04 一种web应用作业的自动评分方法

Country Status (1)

Country Link
CN (1) CN112035371B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113065325A (zh) * 2021-02-26 2021-07-02 成都环宇知了科技有限公司 一种基于OpenXml的Excel文档分析方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120094265A1 (en) * 2010-10-15 2012-04-19 John Leon Boler Student performance monitoring system and method
CN103902304A (zh) * 2012-12-26 2014-07-02 百度在线网络技术(北京)有限公司 一种用于评测Web应用的方法、装置和系统
CN105427695A (zh) * 2015-11-03 2016-03-23 中国农业大学 编程类考题自动测评方法和系统
CN107679567A (zh) * 2017-09-22 2018-02-09 江苏海事职业技术学院 一种代码抄写行为识别方法、装置和系统
CN108446230A (zh) * 2018-03-19 2018-08-24 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120094265A1 (en) * 2010-10-15 2012-04-19 John Leon Boler Student performance monitoring system and method
CN103902304A (zh) * 2012-12-26 2014-07-02 百度在线网络技术(北京)有限公司 一种用于评测Web应用的方法、装置和系统
CN105427695A (zh) * 2015-11-03 2016-03-23 中国农业大学 编程类考题自动测评方法和系统
CN107679567A (zh) * 2017-09-22 2018-02-09 江苏海事职业技术学院 一种代码抄写行为识别方法、装置和系统
CN108446230A (zh) * 2018-03-19 2018-08-24 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩立毛.徐秀芳,时顺: "基于Web的ACM/ICPC自动评测系统的设计与实现", 《电脑知识与技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113065325A (zh) * 2021-02-26 2021-07-02 成都环宇知了科技有限公司 一种基于OpenXml的Excel文档分析方法及系统
CN113065325B (zh) * 2021-02-26 2023-06-23 成都环宇知了科技有限公司 一种基于OpenXml的Excel文档分析方法及系统

Also Published As

Publication number Publication date
CN112035371B (zh) 2022-10-04

Similar Documents

Publication Publication Date Title
US10503910B2 (en) Security testing framework including virtualized server-side platform
CN102254111B (zh) 恶意网站检测方法及装置
US8291405B2 (en) Automatic dependency resolution by identifying similar machine profiles
US9117079B1 (en) Multiple application versions in a single virtual machine
US8615804B2 (en) Complementary character encoding for preventing input injection in web applications
Miller et al. The relevance of classic fuzz testing: Have we solved this one?
US20080270515A1 (en) Method and apparatus for migrating the system environment on which the applications depend
US10885200B2 (en) Detecting security risks related to a software component
US8646078B2 (en) MIME handling security enforcement
US20180351986A1 (en) Cross-site request forgery (csrf) vulnerability detection
CN110225029B (zh) 注入攻击检测方法、装置、服务器及存储介质
US7913265B2 (en) Method of loading software with an intermediate object oriented language in a portable device
JP6404273B2 (ja) 仮想マシンでファイルのアンチウイルススキャンを実行するシステム及び方法
CN110674506B (zh) 快速验证应用程序漏洞状态的方法及系统
Gegick et al. Matching attack patterns to security vulnerabilities in software-intensive system designs
US20200336498A1 (en) Method and apparatus for detecting hidden link in website
CN112035371B (zh) 一种web应用作业的自动评分方法
CN113391874A (zh) 一种虚拟机检测对抗方法、装置、电子设备及存储介质
CN108228312B (zh) 通过解释器执行代码的系统和方法
US20150101052A1 (en) Method for function capture and maintaining parameter stack
CN106529281A (zh) 一种可执行文件处理方法及装置
CN114091031A (zh) 基于白规则的类加载防护方法及装置
CN111061642B (zh) 一种基于用户数据的全自动竞赛数据处理系统以及方法
CN116775034A (zh) 内核观测程序的构建方法、装置及设备
CN115373885A (zh) 一种故障修复方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20201204

Assignee: Nanjing Longtian Software Technology Co.,Ltd.

Assignor: JIANGSU MARITIME INSTITUTE

Contract record no.: X2024980004623

Denomination of invention: An Automatic Scoring Method for Web Application Homework

Granted publication date: 20221004

License type: Common License

Record date: 20240419