买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明公开了一种面向Selenium Remote Control的Java测试代码质量评判方法,本发明通过将所有用户提交的Java文件结合评判者事先给定的白名单进行数据表完善处理,生成一个标准模板,求出每位用户提交的Java文件中两类相应值在这个标准模板所占有的权重比例,从而得出该用户测试代码的最终评判结果。该方法在一定程度上确保了Java测试代码评判的公正性,利用生成的标准模板进行对比,减轻了评判者的工作负担,大大提高了工作效率。
主权项:1.一种面向Selenium Remote Control的Java测试代码质量评判方法,其特征在于:通过从所有用户提交的Java文件测试代码中提取出执行方法和执行对象两种类型值,将这两组值构成一张原始数据表,放在数据库中;评判者首先会给出一份包含所有执行的操作的白名单,结合白名单对上述原始数据表进行完善处理,再次构成一张新数据表,形成一个标准模板;最后分别求出每个用户提交的待评判Java文件中提取出的两种类型值在这个标准模板中所占有的权重比例,从而评判出该用户的Java测试代码质量。
全文数据:—种面向SeIeniumRemoteGontro丨的Java测试代码质量评判方法技术领域[0001]本发明涉及一种面向SeleniumRemoteControl的Java测试代码质量评判方法,属于软件测试领域。背景技术[0002]由于传统的手工测试已经无法实现或难以实现相应的测试,自动化测试便应运而生。自动化测试有以下分类:对WebUI的自动化测试程序、对Windows窗体UI的自动化测试程序和API测试等。[0003]相比于手工测试,自动化测试不仅能够节省人力、时间或硬件资源,而且还能提高测试效率。自动化测试的本质是利用程序测试程序,而如何选择合适的测试代码质量评判方法很重要。[0004]目前市场上的大多数项目都是针对Web而言的,因此使用ffeb自动化测试较多。Web自动化测试可以分为两类:模拟用户真实操作和模拟HTTP请求。前者是通过模拟去操作浏览器上的控件,例如,模拟点击鼠标、键盘输入等。本发明中涉及到的SeleniumRemoteControl就是通过高级语言调用selenium的一些工具来操作浏览器,从而实现WebUI的自动化。[0005]SeleniumRemoteControl,即Selenium的远程控制。其作为一种常用的功能自动化测试工具,相当于Selenium的1•0版本,以下简称为SeleniumRC。SeleniumRC相比于SeleniumIDE而言,其不仅支持多种平台(Windows、Linux、Solaris和多种浏览器(IE、Firefox、Opera、Safari,而且还可以支持java、c#、python、ruby、php、perl等语言环境。SeleniumRC还可以适应更复杂的自动化测试需求,如读写文件和E-mai1邮寄测试报告等,而不仅仅是简单的浏览器操作和线性执行。[0006]Java语言是静态面向对象编程语言的代表,极好地实现了面向对象理论。Java语言具有如下特点:面向对象、可移植性、安全性、并发机制和支持可视化图形界面,其允许程序员用优雅的思维方式进行复杂的编程。作为当下最为流行的编程语言之一,Java占有的“市场份额”较高。[0007]中国专利号为2〇161〇814485.7的专利,公开了一种基于Selenium和TestNG的自动化测试方法,涉及Web自动化测试框架,其将Selenium和TestNG进行结合,采用测试数据、页面对象和方法、测试场景三者分层的形式,搭建良好的Web自动化测试框架,进行数据驱动测试。本发明降低了各测试场景之间的耦合度,实现数据驱动测试,方便脚本的维护,降低自动化测试脚本维护成本,提高了Web自动化测试效率,提高测试的可靠性,避免人为因素。但是此专利只是一种自动化测试方法,其不能对测试代码质量的进行评判。[0008]中国专利号为201710771544.1的专利,公开了一种封装Selenium和Sikuli实现Web自动化测试的方法,包括如下步骤:步骤一、设置java工程的依赖环境;步骤二、对Selenium和Sikuli进行封装,形成核心API;步骤三、编写基础类,供编写测试用例时调用;步骤四、使用步骤二封装的核心API和步骤三编写的基础类,实现Web自动化测试:在src下新建temp目录用于放置测试用例Javaclass,测试用例的Javaclass继承BaseTestCase,然后在测试方法中引用BasePage.java中的测试操作方法并传入测试数据。本发明可降低测试人员编写脚本和维护脚本的难度,提高自动化测试成功率和效率。但是其不能针对面向SeleniumRemoteControl的Java测试代码质量进行评判。[0009]中国专利号为2〇in〇771544.1的专利,公开了一种基于Web系统定位页面元素测试方法,该测试方法以Selenium开源、轻量级的自动化工具为基础,结合Java编程语言,针对基于Web的应用程序的测试,调用WebDriver驱动打开被测Web系统浏览器;在被测系统中,测试人员通过Firebug+FirePath工具轻松得到元素的XPath指定节点,编写测试脚本,把获得XPath指定节点的属性和属性值传递至findElement方法中;运行测试脚本,WebDriver驱动控制浏览器运行,对页面中的元素进行准确的输入、点击等操作测试对象,完成自动化测试。该发明实现基于网页基本控件的操作,分析网页源码,定位更灵活,简单方便。但是WebDriver无法及时的支持最新版本的浏览器,每次浏览器升级后都需要下载新的驱动程序,而SeleniumRemoteControl则通过SeleniumCorejs实现来间接驱动浏览器;并且其不能对测试代码质量进行评判。发明内容[0010]发明目的:本发明的目的在于解决了本公司以往人工手动评判代码质量的效率低下的缺陷,提供了一种面向SeleniumRemoteControl的Java测试代码质量评判方法。本发明确保了Java测试代码评判的公正性,利用生成的标准模板进行对比,减轻了评判者的工作负担,大大提高了工作效率。[0011]技术方案:为实现上述目的,本发明采用的技术方案为:[0012]—种面向SeleniumRemoteControl的Java测试代码质量评判方法,通过从所有用户提交的Java文件测试代码中提取出执行方法和执行对象两种类型值,将这两组值构成一张原始数据表,放在数据库中;评判者首先会给出一份包含所有执行的操作的白名单,结合白名单对上述原始数据表进行完善处理,再次构成一张新数据表,形成一个标准模板;最后分别求出每个用户提交的待评判Java文件中提取出的两种类型值在这个标准模板中所占有的权重比例,从而评判出该用户的Java测试代码质量。[0013]所述通过从所有用户提交的Java文件测试代码中提取出执行方法和执行对象两种类型值,将这两组值构成一张原始数据表的方法如下:[0014]步骤1-1:获取提交的所有用户提交的java文件;[0015]步骤1-2:建立一张原始数据表,包含执行方法和执行对象两列;[0016]步骤1-3:逐个扫描提交的Java文件;[0017]步骤1-4:判断当前Java文件是否已经启动浏览器;[0018]步骤1-4-1:判断为是,跳转到步骤1-5;[0019]步骤1-4-2:判断为否,跳转到步骤1-10;[0020]步骤1-5:逐行扫描该Java文件;[0021]步骤1-6:判断该行是否有selenium对象调用的方法;[0022]步骤1-6-1:判断为是,跳转到步骤1-7;[0023]步骤l-e-2:判断为否,跳转到步骤i-9;[0024]步骤1_7:提取该行selenium对象调用的方法名和该方法对应的参数;[0025]步骤1-8:判断原始数据表中是否存在有一行的数据分别对应该行selenium对象调用的方法名和其对应的参数;[0026]步骤IK:判断为是,跳转到步骤1-9;[0027]步骤1-8-2:判断为否,将步骤卜7中提取出的方法名和其对应的参数分别加入此原始数据表中;[0028]步骤卜9:判断是否已经到达当前Java文件的结尾;[0029]步骤1-9-1:判断为是,跳转到步骤1-1〇;[0030]步骤1-9-2:判断为否,跳转到步骤丨-5,继续扫描处理;[0031]步骤卜10:判断当前Java文件是否是所有提交的java文件中的最后一个;[0032]步骤1-10-1:判断为是,进行下一步原始数据表完善处理工作;[0033]步骤1_10-2:判断为否,跳转到步骤丨-3,继续扫描处理。[0034]所述结合白名单对上述原始数据表进行完善处理,再次构成一张新数据表,形成一个标准模板的方法:[0035]步骤2-1:逐行扫描建立原始数据表中的数据;[0036]步骤2-2:逐行扫描白名单中的数据;[0037]步骤2_3:判断步骤2-2行的数据是否在当前原始数据表中;[0038]步骤2-3-1:判断为是,跳转到步骤2—4;[0039]步骤2-3-2:判断为否,将步骤2_2行的数据加入到当前原始数据表中,然后跳转到步骤2-4;[0040]步骤2-4:判断是否已经到了白名单的末尾;[0041]步骤2-4-1:判断为是,得到新数据表,新数据表作为标准模板,进入下一步评判工作;[0042]步骤2-4-2:判断为否,跳转到步骤2_2,继续执行。[00^3]所述分别求出每个用户提交的待评判Java文件中提取出的两种类型值在这个标准模板中所占有的权重比例,从而评判出该用户的Java测试代码质量的方法:[0044]步骤m获取用户提交的待评判Java文件;[0045]丨骤3—2:判断当則待评判】_文件是否已经启动浏览器;[0046]步骤3-2-1:判断为是,跳转到步骤3_3;[0047]步骤3-2-2:判断为否,停止程序;[0048]步骤3_3:逐行扫描该待评判Java文件;[0049]频3-4:纖飾额有selenium雜漏的方法;[0050]步骤3-4-1:判断为是,跳转到步骤3_5;[0051]步骤3-4_2:判断为否,跳转到步骤3_8;$紙5:提取该行selenium驗删的施名職施对应的参数;[0053]步骤3—6:判断标准模板中是否有步骤3-5中的此行记录;[00M]步骤3-6_1:判断为是,跳转到步骤3_7;[0055]步骤3-6-2:判断为否,跳转到步骤3—8;L〇〇56」步骤3-7:判断标准模板中符合步骤3-5的这行记录是否已经打上标记;[0057]步骤3-7-1:判断为是,跳转到步骤3-8;[0058]步骤3-7-2:判断为否,将该行打上标记;[0059]步骤3-8:判断是否已经达到当前待评判java文件的结尾;[0060]步骤3-S-1:判断为是,跳转到步骤3-9;[0061]步骤3-8-2:判断为否,跳转到步骤3-3;[0062]步骤3-9:逐行扫描标准模板,获得模板中己标记的行数和总行数;[0063]步骤:计算用户提交的Java测试代码的权重比例,比例=己标记行数总行数,停止程序。[00M]本发明相比现有技术,具有以下有益效果:[0065]1.本发明针对这种探索式测试,通过归一化评判,不仅节省了测试代码质量评判的成本,而且还大大提高了工作效率。[0066]2.本发明利用生成的标准模板进行归一化评判,在一定程度上确保了评判的公平性。[0067]3•本发明不但能够节省评判者评判用户代码质量的时间,并且能有效地避免了由于评判者的主观印象而人为导致的失误。通过结合评判者事先给定的白名单,生成标准模板,不仅大大提高了评判的效率,而且在一定程度上还确保了评分的公平性。附图说明[0068]图1为本发明的流程图。[0069]图2为本发明建立原始数据表的方法流程图。[0070]图3为本发明数据表完善处理的方法流程图。[0071]图4为本发明代码质量评判的方法流程图。具体实施方式[0072]下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。[0073]如图1所示为一种面向SeleniumRemoteControl的Java测试代码质量评判方法,如图1所示,通过从所有用户提交的Java文件测试代码中提取出执行方法和执行对象两种类型值,将这两组值构成一张原始数据表,放在数据库中;评判者首先会给出一份包含所有执行的操作的白名单,结合白名单对上述原始数据表进行完善处理,再次构成一张新数据表,形成一个标准模板;最后分别求出每个用户提交的待评判Java文件中提取出的两种类型值在这个标准模板中所占有的权重比例,从而评判出该用户的Java测试代码质量。使用这种归一化的评分方法,不仅提高了评判的效率,而且一定程度上还确保了公平性,具体包括以下步骤:[0074]步骤1:建立原始数据表,如图2所示,具体的技术方案如下:[0075]步骤1-1:获取提交的所有用户提交的Java文件;[0076]步骤1-2:建立一张原始数据表,包含执行方法和执行对象两列;[0077]步骤1-3:逐个扫描提交的java文件;[0078]步骤1-4:判断当前Java文件是否己经启动浏览器;[0079]步骤1-4-1:判断为是,跳转到步骤丨-5;[0080]步骤1-4-2:判断为否,跳转到步骤丨〇;[0081]步骤1-5:逐行扫描该java文件[0082]步骤1_6:判断该行是否对象调用的方法;[0083]步骤1-6-1:判断为是,跳转到步骤丨-7;[0084]步骤1-6-2:判断为否,跳转到步骤1一9;[0085]步骤1-7:提取该行selenium对象调用的方法名和该方法对应的参数;[0086]步骤1_8:判断原始数据表中是否存在有一行的数据分别对应该行selenium对象调用的方法名和其对应的参数;[0087]步骤1-8_1:判断为是,跳转到步骤1一9;[0088]步骤1-8_2:判断为否,将步骤i_7中提取出的方法名和其对应的参数分别加入此原始数据表中;[0089]步骤卜9:判断是否己经到达当前Java文件的结尾;[0090]步骤1_9-1:判断为是,跳转到步骤1-1〇;[0091]步骤丨―9-2:判断为否,跳转到步骤1-5,继续扫描处理;[0092]步骤1-10:判断当前java文件是否是所有提交的java文件中的最后一个;[0093]步骤1-10-1:判断为是,进行下一步原始数据表完善处理工作;[0094]步骤1-1〇_2:判断为否,跳转到步骤1-3,继续扫描处理;[0095]步骤2:数据表完善处理,如图3所示,具体的技术方案如下:[0096]步骤2—丨:逐行扫描建立原始数据表中的数据;[0097]步骤2-2:逐行扫描白名单中的数据;[0098]步骤2-3:判断步骤2-2行的数据是否在当前原始数据表中;[00"]步骤2-3-1:判断为是,跳转到步骤2_4;=〇]步骤2-3-2:判断为否,将步骤2—2行的数据加入到当前原始数据表中,然后跳转步骤2-4;[0101]步骤2-4:判断是否已经到了白名单的末尾;[0102]步骤2-4-1:判断为是,得到新数据表,新数据表作为标准模板,进入下一步评判工作;[0103]步骤2-4-2:判断为否,跳转到步骤2_2,继续执行;_4]步骤3:代码质量评判,如图4所示,具体的技术方案如下:_5]步骤3-1:获取用户提交的待评判Java文件;_6]步骤3—2:判断当前待评判細文件是否已经启动浏览器;[0107]步骤3-2-1:判断为是,跳转到步骤3一3;[0108]步骤3-2-2:判断为否,停止程序;[0109]步骤3—3:逐行扫描该待评判細a文件;[0110]步骤3-4:判断该行是否有seleniuffl对象调用的方法;[0111]步骤3—4—1:判断为是,跳转到步骤3-5;少4_z:刊断为否,跳转到步骤3_8;33^骤3—5:提取该行%lenium对象调用的方法名和该方法对应的参数;步骤3-6:判断标准模板中是否有步骤3_5中的此行记录;[0115]步骤3—6-1:判断为是,跳转到步骤3-7;[0116]步骤3_6_2:判断为否,跳转到步骤3一8;[0117]步骤3-7:判断标准模板中符合步骤3_5的这行记录是否已经打上标记;[0118]步骤3-7-1:判断为是,跳转到步骤3-g;[0119]步骤3-7-2:判断为否,将该行打上标记;[0120]步骤3-8:判断是否已经达到当前待评判java文件的结尾;[0121]步骤3-8-1:判断为是,跳转到步骤3一9;[0122]步骤3-8-2:判断为否,跳转到步骤3—3;[0123]步骤3-9:逐行扫描标准模板,获得模板中已标记的行数和总行数;[0124]步骤1〇:计算用户提交的Java测试代码的权重比例,比例=已标记行数总行数,停止程序。[0125]本方法使评判者便于评判用户的测试代码质量,降低了评判者评判的难度。在一定程度上确保了Java测试代码评判的公正性,利用生成的标准模板进行对比,减轻了评判者的工作负担,大大提高了工作效率。[0126]以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求:1.一种面向SeleniumRemoteControl的Java测试代码质量评判方法,其特征在于:通过从所有用户提交的Java文件测试代码中提取出执行方法和执行对象两种类型值,将这两组值构成一张原始数据表,放在数据库中;评判者首先会给出一份包含所有执行的操作的白名单,结合白名单对上述原始数据表进行完善处理,再次构成一张新数据表,形成一个标准模板;最后分别求出每个用户提交的待评判Java文件中提取出的两种类型值在这个标准模板中所占有的权重比例,从而评判出该用户的Java测试代码质量。2.根据权利要求1所述面向SeleniumRemoteControl的Java测试代码质量评判方法,其特征在于:所述通过从所有用户提交的Java文件测试代码中提取出执行方法和执行对象两种类型值,将这两组值构成一张原始数据表的方法如下:步骤1-1:获取提交的所有用户提交的Java文件;步骤1-2:建立一张原始数据表,包含执行方法和执行对象两列;步骤1-3:逐个扫描提交的Java文件;步骤1-4:判断当前Java文件是否已经启动浏览器;步骤1-4-1:判断为是,跳转到步骤1-5;步骤1-4-2:判断为否,跳转到步骤1-1〇;步骤I-5:逐行扫描该Java文件;步骤1-6:判断该行是否有selenium对象调用的方法;步骤1-6-1:判断为是,跳转到步骤w;步骤l-e-2:判断为否,跳转到步骤i—9;步骤1-7:提取该行selenium对象调用的方法名和该方法对应的参数;步骤1-8:判断原始数据表中是否存在有一行的数据分别对应该行selenium对象调用的方法名和其对应的参数;步骤1-8-1:判断为是,跳转到步骤丨-9;步骤1_8_2:判断为否,将步骤卜7中提取出的方法名和其对应的参数分别加入此原始数据表中;步骤1-9:判断是否已经到达当前Java文件的结尾;步骤1-9-1:判断为是,跳转到步骤K0;步骤1-9-2:判断为否,跳转到步骤卜5,继续扫描处理;步骤1-10:判断当前Java文件是否是所有提交的Java文件中的最后一个;步骤1-10-1:判断为是,进行下一步原始数据表完善处理工作;步骤1-10-2:判断为否,跳转到步骤n,继续扫描处理。3.根据权利要求1所述面向SeleniumRemoteControl的Java测试代码质量评判方法,其特征在于:所述结合白名单对上述原始数据表进行完善处理,再次构成一张新数据表,形成一个标准模板的方法:步骤2-1:逐行扫描建立原始数据表中的数据;步骤2_2:逐行扫描白名单中的数据;步骤2-3:判断步骤2-2行的数据是否在当前原始数据表中;步骤2-3-1:判断为是,跳转到步骤2_4;步骤2-3-2:判断为否,将步骤2_2行的数据加入到当前原始数据表中,然后跳转到步骤2-4;步骤2-4:判断是否已经到了白名单的末尾;步骤2-4-1:判断为是,得到新数据表,新数据表作为标准模板,进入下一步评判工作;步骤2-4-2:判断为否,跳转到步骤2-2,继续执行。4.根据权利要求1所述面向SeleniumRemoteControl的Java测试代码质量评判方法,其特征在于:所述分别求出每个用户提交的待评判Java文件中提取出的两种类型值在这个标准模板中所占有的权重比例,从而评判出该用户的java测试代码质量的方法:步骤3_1:获取用户提交的待评判Java文件;步骤3_2:判断当前待评判java文件是否已经启动浏览器;步骤3-2-1:判断为是,跳转到步骤3-3;步骤3-2-2:判断为否,停止程序;步骤3-3:逐行扫描该待评判java文件;步骤3-4:判断该行是否有selenium对象调用的方法;步骤3-4-1:判断为是,跳转到步骤3—5;步骤3-4-2:判断为否,跳转到步骤3_8;步骤3-5:提取该行selenium对象调用的方法名和该方法对应的参数;步骤3-6:判断标准模板中是否有步骤3_5中的此行记录;步骤3-6-1:判断为是,跳转到步骤3一7;步骤3-6-2:判断为否,跳转到步骤3一8;步骤3-7:判断标准模板中符合步骤3_5的这行记录是否己经打上标记;步骤3-7-1:判断为是,跳转到步骤3_8;步骤3—7-2:判断为否,将该行打上标记;步骤3-8:判断是否已经达到当前待评判Java文件的结尾;步骤3-8-1:判断为是,跳转到步骤3一9;步骤3-8-2:判断为否,跳转到步骤3_3;步骤3-9:逐行扫描标准模板,获得模板中已标记的行数和总行数;步骤3-10:计算用户提交的Java测试代码的权重比例,比例=已标记行数总行数,停止程序。
百度查询: 南京邮电大学盐城大数据研究院有限公司 一种面向Selenium Remote Control的Java测试代码质量评判方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。