CN112035371A - 一种web应用作业的自动评分方法 - Google Patents
一种web应用作业的自动评分方法 Download PDFInfo
- 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
Links
- 238000013077 scoring method Methods 0.000 title claims abstract description 10
- 238000012360 testing method Methods 0.000 claims abstract description 44
- 238000011156 evaluation Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000006837 decompression Effects 0.000 claims description 3
- 230000003252 repetitive effect Effects 0.000 claims description 3
- 238000002955 isolation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001388118 Anisotremus taeniatus Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000010978 jasper Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B7/00—Electrically-operated teaching apparatus or devices working with questions and answers
- G09B7/02—Electrically-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应用作业的自动评分方法。
背景技术
现有技术中,申请号为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,超时限值,页面元素,操作及值,测评点、测评方法及期望值。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065325A (zh) * | 2021-02-26 | 2021-07-02 | 成都环宇知了科技有限公司 | 一种基于OpenXml的Excel文档分析方法及系统 |
Citations (5)
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测试代码质量评判方法 |
-
2020
- 2020-09-04 CN CN202010923217.5A patent/CN112035371B/zh active Active
Patent Citations (5)
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)
Title |
---|
韩立毛.徐秀芳,时顺: "基于Web的ACM/ICPC自动评测系统的设计与实现", 《电脑知识与技术》 * |
Cited By (2)
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 |