CN114048134A - 基于pom和数据驱动的自动化测试方法和装置 - Google Patents

基于pom和数据驱动的自动化测试方法和装置 Download PDF

Info

Publication number
CN114048134A
CN114048134A CN202111348310.9A CN202111348310A CN114048134A CN 114048134 A CN114048134 A CN 114048134A CN 202111348310 A CN202111348310 A CN 202111348310A CN 114048134 A CN114048134 A CN 114048134A
Authority
CN
China
Prior art keywords
test
file
module
file directory
function
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.)
Pending
Application number
CN202111348310.9A
Other languages
English (en)
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.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
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 Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202111348310.9A priority Critical patent/CN114048134A/zh
Publication of CN114048134A publication Critical patent/CN114048134A/zh
Pending legal-status Critical Current

Links

Images

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/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及一种基于POM和数据驱动的自动化测试方法和装置,其中,方法包括:创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,在公共文件目录中创建公共文件和模块入口文件,在模块功能文件目录中编写各个模块对应的功能操作方式,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,在测试用例文件目录中编写验证对应页面的功能点的测试用例,在测试报告文件目录中编写测试所需的配置文件,在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。从而实现自动化代码的可移植性、提高自动化测试效率、降低测试成本。

Description

基于POM和数据驱动的自动化测试方法和装置
技术领域
本公开涉及自动化测试技术领域,尤其涉及一种基于POM和数据驱动的自动化测试方法和装置。
背景技术
POM(page object model)页面对象模型,主要应用于UI(User Interface,用户界面)自动化测试框架的搭建,目前,自动化测试已发展成为软件开发过程中必不可少的一个环节。
相关技术中,需要测试人员手动编辑自动化测试脚本及测试用例,将执行结果与预期结果进行手工比较得到记录结果。
然而,相关技术中,源代码进行更改时,需要重复手动执行测试用例,花费大量人工成本,并且容易出错。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于POM和数据驱动的自动化测试方法和装置。
第一方面,本公开实施例提供了一种基于页面对象模型POM和数据驱动的自动化测试方法,包括:
创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录;
在公共文件目录中创建公共文件和模块入口文件;
在模块功能文件目录中编写各个模块对应的功能操作方式;
在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件;
在测试用例文件目录中编写验证对应页面的功能点的测试用例;
在测试报告文件目录中编写测试所需的配置文件;
在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。
第二方面,本公开实施例提供了一种基于页面对象模型POM和数据驱动的自动化测试装置,包括:
第一创建模块,用于创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录;
第二创建模块,在公共文件目录中创建公共文件和模块入口文件;
第一编写模块,用于在模块功能文件目录中编写各个模块对应的功能操作方式;
第二编写模块,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件;
第三编写模块,在测试用例文件目录中编写验证对应页面的功能点的测试用例;
第四编写模块,在测试报告文件目录中编写测试所需的配置文件;
构造输出模块,用于在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。
第三方面,本公开实施例提供了一种基于页面对象模型POM和数据驱动的自动化测试设备,包括:
处理器,用于存储处理器可执行指令的存储器;
处理器,用于从存储器中读取可执行指令,并执行指令以实现本公开前述实施例所述的基于页面对象模型POM和数据驱动的自动化测试方法。
第四方面,本公开实施例提供了一种基于页面对象模型POM和数据驱动的自动化测试介质,包括:
存储介质存储有计算机程序,计算机程序用于执行本公开前述实施例所述的基于页面对象模型POM和数据驱动的自动化测试方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例中,创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,在公共文件目录中创建公共文件和模块入口文件,在模块功能文件目录中编写各个模块对应的功能操作方式,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,在测试用例文件目录中编写验证对应页面的功能点的测试用例,在测试报告文件目录中编写测试所需的配置文件,在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。本公开通过将测试方法与测试用例分离、驱动数据文件与测试数据文件分离、以及数据间隔离实现自动化代码的可移植性、提高自动化测试效率、降低测试成本。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开提供的一种基于页面对象模型POM和数据驱动的自动化测试方法流程示意图;
图2为本公开提供的另一种基于页面对象模型POM和数据驱动的自动化测试方法流程示意图;
图3为本公开实施例提供的一种公共文件目录结构示意图;
图4为本公开实施例提供的一种模块功能文件目录结构示意图;
图5为本公开实施例提供的一种数据文件目录结构示意图;
图6为本公开实施例提供的一种测试用例文件目录结构示意图;
图7为本公开实施例提供的一种测试报告及其他文件目录结构示意图;
图8为本公开提供的又一种基于页面对象模型POM和数据驱动的自动化测试方法流程示意图;
图9为本公开提供的又一种基于页面对象模型POM和数据驱动的自动化测试方法流程示意图;
图10为本公开提供的一种以超融合等平台Web页面测试为例基于页面对象模型POM和数据驱动的自动化测试的流程示意图;
图11为本公开实施例提供的一种基于页面对象模型POM和数据驱动的自动化测试装置结构示意图;
图12为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
具体地,传统的自动化测试案例操作细节与结果验证放在一起,存在代码结构混乱,不易维护的缺点,本公开实施例是在已有的测试框架(Pytest,Python计算机编程语言测试框架)及封装(PO,Page Object页面对象)基础上根据项目需求进行改进,引入数据驱动的思想,对测试数据文件和测试步骤进行数据驱动和异常处理。
另外,通过编写用例类(TestCase),由用例加载器(TestLoader)加载用例类到测试用例集(TestSuit),再由运行器(TextTestRunner)来运行TestSuit,最后将运行结果保存在测试结果(TextTestResult)中,存在测试用例格式复杂,难以扩展,测试代码无法复用,冗余度高,以及代码对页面元素依赖度强,不利于维护等技术问题;或者是通过调用页面类来获取页面元素,避免了当页面元素标识或者位置变化时需要改测试页面,从而有效的降低了维护成本,存在项目结构复杂,实现流程比较难理解,页面对象结构松散,无法在多项目中迁移,测试系统页面功能发生改变,需要修改封装的测试页面功能代码,接口数据或参数发生改变,需要修改封装的测试接口功能代码等技术问题。
本公开实施例提出了一种基于页面对象模型POM和数据驱动的自动化测试方法,通过对公共方法的封装、模块入口封装、测试用例方法与测试数据文件的分离、关键字调用等技术方案,以避免测试代码冗余、结构混乱、难以维护的现状,有效提高了自动化运行效率。也就是说,将测试方法与测试用例的分离、测试数据文件与驱动数据文件的分离,相互之间存在关联(通过调用方式实现),又互不影响(例如测试系统版本的迭代导致测试功能点实现方法发生变化,只需要改变对应功能测试方法的代码,测试用例等其它代码不受影响),从而降低了自动化测试的维护成本,提高了自动化测试的价值。
具体地,图1为本公开提供的一种基于页面对象模型POM和数据驱动的自动化测试方法,包括:
步骤101、创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录。
其中,公共文件目录可以创建多个文件,各个文件用于放置常用的方法和公共的操作,模块功能文件目录指的是每个模块功能业务实现的具体方法,数据文件目录用于存放测试步骤和测试用例数据驱动的目标文件,测试用例文件目录用于放置每个模块对应具体功能的用例,测试报告文件目录用于存放自动化测试结果和框架相关配置。
在一些实施例中,基于测试需求分析,比如自动化模块设置、自动化场景分析等,获取自动化设计框架,基于自动化设计框架通过相关代码程序或者触发相关控件等方式创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录。
步骤102、在公共文件目录中创建公共文件和模块入口文件。
其中,公共文件是用于封装公共方法及属性,常见公共方法如查找元素(find_element)方法封装,常见属性如登录方法、公共参数等;模块入口文件,用于控制从一个页面跳转到另一个页面,实现页面对象的组合。
具体地,公共文件目录结构如图3所示,用于放置常用的方法和公共操作,其中,在公共文件目录中创建公共文件和模块入口文件,如图3所示公共文件包括登录方法、公共参数、初始化方法、公共方法等,模块入口文件包括各个模块功能入口和模块功能入口,其中,各个模块功能入口包括系统首页入口、各个模块入口和子模块入口,模块功能的入口包含所有子模块页面。
步骤103、在模块功能文件目录中编写各个模块对应的功能操作方式。
在一些实施例中,以每个模块进行划分,创建一个文件,以每个模块下的每个页面为一个类,在每个类中编写对应页面的功能操作方式;在另一些实施例中,按照模块之间的并列关系或从属关系进行划分,并在每个模块下编写对应的功能操作方式。
具体地,模块功能文件目录结构如图4所示,其中,模块功能文件目录包括首页模块文件目录、01模块文件目录,02模块文件目录等,首页模块文件目录包括首页/概览模块,首页/概览模块包括模块功能验证类及其他模块功能入口类,模块功能验证类主要涉及功能方法,其他模块功能入口类主要涉及间接功能方法;01模块文件目录包括01-11子模块文件目录及01-12子模块文件目录等,01-11子模块文件目录包括模块1、模块2等,模块1和模块2包括各个功能方法等。
步骤104、在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件。
其中,功能点指的是对功能的具体场景划分,如登录功能,功能点可以设置为登录账号验证、登录密码验证等,编写规则以专门用来写配置文件的写配置文件的语言(yaml)文件或其它文件的格式规范进行驱动数据文件和测试数据文件的编写。
在一些实施例中,以每个页面为单位创建一个目标文件,每个目标文件中以每个测试点的数据进行划分,得到驱动数据文件和测试数据文件;其中,驱动数据文件包含实现每个测试点的所有动作,测试数据文件包含每个测试点的操作成功的正确结果。
具体地,数据文件目录结构如图5所示,其中,数据文件目录包括功能数据文件目录和测试数据文件目录,具体地,功能数据文件目录包含各个功能点的数据,测试数据文件目录包含各个测试点的数据。
步骤105、在测试用例文件目录中编写验证对应页面的功能点的测试用例。
在一些实施例中,调用模块入口文件进入到当前验证功能的页面,调用模块功能文件对应模块下的类中的对应功能点的操作方式,得到返回值,将返回值与预期结果进行对比,如一致,则测试用例通过,其中,通过调用测试数据文件获取预期结果。
具体地,测试用例文件目录结构如图6所示,测试用例文件目录包括模块文件目录、01模块文件目录、02模块文件目录等和执行测试模块,其中,模块文件目录包括首页功能用例类,首页功能用例类包括模块功能用例类及其他模块功能用例类;01模块文件目录包括01-11子模块文件目录、01-12子模块文件目录等,比如01-11子模块文件目录包括模块1、模块2等各个模块,每个模块包括用例1、用例2等。
步骤106、在测试报告文件目录中编写测试所需的配置文件。
在一些实施例中,为了避免文件路径过长导致出错可通过配置文件获取文件路径、解析目标文件(比如前述的yaml格式或excel格式文件等),日志触发等等。
步骤107、在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。
其中,测试报告文件及其他文件目录结构如图7所示,具体地,测试报告文件目录包括测试执行结果文件目录及测试报告文件目录;需要说明的是还可以设置其他文件目录,用于数据驱动函数封装。
本公开实施例提供的基于页面对象模型POM和数据驱动的自动化测试方案,创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,在公共文件目录中创建公共文件和模块入口文件,在模块功能文件目录中编写各个模块对应的功能操作方式,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,在测试用例文件目录中编写验证对应页面的功能点的测试用例,在测试报告文件目录中编写测试所需的配置文件,在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。采用上述技术方案,对公共方法的封装、模块入口封装、测试用例方法与测试数据文件的分离、关键字调用等技术手段,从而避免了有效的提高了自动化运行效率、实现自动化代码的可移植性、降低了自动化测试的维护成本,提高了自动化测试的价值。
图2为本公开提供的另一种基于页面对象模型POM和数据驱动的自动化测试方法,包括:
步骤201、创建公共文件目录,模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录。
步骤202、在公共文件目录中创建公共文件和模块入口文件。
需要说明的是,步骤201-202与上述步骤101-102相同,具体参见对步骤101-102的描述,此处不再详述。
步骤203、以每个模块进行划分,创建一个文件,以每个模块下的每个页面为一个类,在每个类中编写对应页面的功能操作方式。
在一些实施例中,如查找功能,在查找模块下的每个页面创建查找功能的操作方式,如关键字查找、模糊查找、具体查找等。
步骤204、以每个页面为单位创建一个目标文件,每个目标文件中以每个测试点的数据进行划分,得到驱动数据文件和测试数据文件,其中,驱动数据文件包含实现每个测试点的所有动作,测试数据文件包含每个测试点的操作成功的正确结果。
具体地,测试方法中的数据由对应驱动数据文件提供,测试用例中的数据由对应的测试数据文件提供,在一些实施例中,当某个功能点发生改变如测试点的流程发生改变,或者测试点对应元素位置发生改变,而最终的测试结果不变时,只需要修改驱动数据文件中的数据,而不需要对测试数据文件进行任何修改;在另一些实施例中,页面功能的实现由测试方法实现,页面功能的正确结果由测试用例实现,如页面功能的实现逻辑发生改变时,只需修改测试方法中对应的代码,测试用例中的代码不受影响。
需要说明的是,对于驱动数据文件或测试数据文件,每一条测试用例的数据是相互独立的,数据之间相互不受影响,在一些实施例中,一条测试用例的数据格式出现错误或数据变更时,其它测试用例正常运行,此外可以通过失败测试用例的报错信息快速定位到哪条测试用例的某个数据出现问题,从而有效的节省了排查问题的时间。
步骤205、调用模块入口文件进入到当前验证功能的页面,调用模块功能文件对应模块下的类中的对应功能点的操作方式,得到返回值,将返回值与预期结果进行对比,如一致,则测试用例通过,其中,通过调用测试数据文件获取预期结果。
在一些实施例中,如登录功能,通过调用模块入口文件进入到验证登录功能的页面,调用模块功能文件中功能点(账号验证,密码验证等)的操作方式,比如得到返回值F,将返回值F与预期结果G进行对比,如果F等于G,则测试用例通过。
步骤206、在测试报告文件目录中编写测试所需的配置文件。
步骤207、在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。
需要说明的是,步骤206-207与上述步骤106-107相同,具体参见对步骤106-107的描述,此处不再详述。
步骤208、通过预设方式将测试报告发送至目标地址。
具体地,预设方式可以通过关联开源软件(Jenkins),触发自动执行代码,将测试报告发送至目标地址如邮箱等。
本公开实施例提供的基于页面对象模型POM和数据驱动的自动化测试方案,创建公共文件目录,模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,在公共文件目录中创建公共文件和模块入口文件,以每个模块进行划分,创建一个文件,以每个模块下的每个页面为一个类,在每个类中编写对应页面的功能操作方式,以每个页面为单位创建一个目标文件,每个目标文件中以每个测试点的数据进行划分,得到驱动数据文件和测试数据文件,其中,驱动数据文件包含实现每个测试点的所有动作,测试数据文件包含每个测试点的操作成功的正确结果,调用模块入口文件进入到当前验证功能的页面,调用模块功能文件对应模块下的类中的对应功能点的操作方式,得到返回值,将返回值与预期结果进行对比,如一致,则测试用例通过,其中,通过调用测试数据文件获取预期结果,在测试报告文件目录中编写测试所需的配置文件,在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告,通过预设方式将测试报告发送至目标地址。采用上述技术方案,使测试人员不必花费大量时间在功能用例的测试上,只需提取功能点的驱动数据文件和测试数据文件,降低了测试成本,并且本技术方案采用驱动数据文件与测试数据文件分离技术,降低了自动化测试框架代码冗余度,方便维护。
为了更加清晰的描述基于页面对象模型POM和数据驱动的自动化测试方法,本文以超融合等平台Web(World Wide Web,全球广域网)页面测试为例,实现如图8所示的基于页面对象模型POM和数据驱动的自动化测试方法。
具体地,如图8所示,首先制定测试计划,根据测试计划进行测试需求分析,如哪些功能模块可实现自动化、实现自动化的技术难点以及自动化场景解决的方案,搭建自动化测试环境及框架设计,进而编写自动化测试代码,其中编写自动化测试代码通过建立自动化框架代码、编写自动化测试用例及代码来实现,从而执行自动化测试,检验自动化测试结果是否通过,若通过则分析测试结果,如自动化测试报告解读、结果分析及模块结构优化等,若不通过则记录测试问题,跟踪漏洞bug,回归测试再次执行自动化测试步骤。
图9为本公开提供的又一种基于页面对象模型POM和数据驱动的自动化测试方法流程示意图,具体包括以下步骤如图9所示:
步骤901、搭建POM自动化框架。
步骤902、编写功能方法驱动数据文件。
具体地,以图10为例,首先调用浏览器驱动实现自动化代码对浏览器的控制,创建公共文件目录,其中公共文件目录包括公共文件和模块入口文件,公共文件用于封装公共属性和方法,模块入口文件用于继承公共类,实现对已登录过账号驱动的复用,通过模块文件中的类继承公共封装方法类,创建页面数据目录,其中,页面数据目录中按照模块划分,创建模块目录,然后在对应模块目录下创建用于页面功能实现的驱动数据文件(data1.yaml)。
在data1.yaml中编写被测功能实现过程所需的驱动数据文件,包括页面元素的定位,对定位元素的操作(如点击、输入等),并对最终的操作结果进行获取,其获取方法是通过调用公共方法将yaml中对应的驱动数据文件解析后传递给功能实现。
步骤903、创建功能实现的方法。
页面对象目录中按照模块划分,创建模块目录,然后在对应模块目录下创建页面类文件,每个页面对应一个页面功能实现类,在页面类页面1中创建功能实现的方法功能1,具体实现功能的方法,包括实现过程的步骤,实现功能结果的输出等,再将驱动数据文件data1.yaml中对应的yaml格式的数据通过转化后导入方法功能1对应的操作步骤中,最后返回操作结果。
步骤904、编写测试预期结果数据。
(1)测试数据文件目录中按照模块划分,创建模块目录,然后在对应模块目录下创建用于判断页面功能操作后的结果是否正确的测试数据文件(test1.yaml)。
(2)在test1.yaml中编写被测功能操作后的预期结果数据,包括页面功能操作后的提示信息,报错信息等。
步骤905、创建功能测试用例的方法。
(1)测试用例目录test_case中按照模块划分,创建模块目录,然后在对应模块目录下创建测试类文件。
(2)在测试类test1.py中创建功能测试的方法test1。
(3)将test1.yaml中对应的yaml格式的数据通过转化后导入方法test1中,得到预期结果,具体地,转化方法是通过调用公共方法将yaml中对应的测试数据文件解析后传递给测试用例来实现的。
(4)调用功能1,将从功能1中得到的功能实现的操作结果返回值与预期结果进行断言,其中预期结果指的是具体功能对应的测试用例,根据对应的功能得到对应的预期结果。
步骤906、运行功能测试用例。
(1)使用run.py方法批量运行上述创建的测试用例,如果测试用例中的预期结果与操作结果一致,则对应用例测试通过,具体地,通过调用页面功能类中对应的功能实现方法,得到功能操作结果返回值,再将预期结果与操作结果进行断言,以此判断自动化用例是否通过。
(2)如果测试用例不通过,则对应测试用例的测试不通过,并在日志中输出报错信息。
步骤907、输出自动化测试报告。
(1)在报告目录中输出HTML(Hyper Text Markup Language,超文本标记语言)自动化测试报告,报告中可详细记录自动化用例执行结果。
此外,本发明还可应用于超融合等平台接口测试。使用POM自动化测试模型实现对调用的接口的封装,利用数据驱动的方式导入接口参数,其中,业务用例设计中含有多个API(Application Program Interface,应用程序接口)形成的流程定义,无需再包含任何接口来实现细节,只需通过调用API对象来实现接口自动化测试。
由此,实现自动化代码的可移植性,使用关键字驱动及公共模块/函数封装等方法,从而达到一套框架可适用于不同类型的自动化项目;提高自动化测试效率,采用驱动数据文件与测试数据文件分离技术,使自动化测试框架代码冗余度低,可维护性好;实现过程采用场景化设计,更接近于用户实际使用习惯;降低测试成本,测试人员不必花费大量时间在功能用例的测试上,只需提取功能点的驱动数据文件和测试数据文件,具体实现过程通过调用已封装的各种公共方法,然后将驱动数据文件和测试数据文件导入,最终实现自动化测试用例的编写;完美的替代手工执行用例,从而有更多的精力关注于深层次的业务场景中。
图11为本公开实施例提供的一种基于页面对象模型POM和数据驱动的自动化测试装置结构示意图,该装置包括第一创建模块1101、第二创建模块1102、第一编写模块1103、第二编写模块1104、第三编写模块1105、第四编写模块1106、构造输出模块1107,其中,
第一创建模块1101,用于创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,
第二创建模块1102,在公共文件目录中创建公共文件和模块入口文件,
第一编写模块1103,用于在模块功能文件目录中编写各个模块对应的功能操作方式,
第二编写模块1104,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,
第三编写模块1105,在测试用例文件目录中编写验证对应页面的功能点的测试用例,
第四编写模块1106,在,测试报告文件目录中编写测试所需的配置文件;
构造输出模块1107,用于在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。
可选地,所述第二创建模块1102,具体用于:
公共文件,用于封装公共方法及属性,
模块入口文件,用于控制从一个页面跳转到另一个页面。
可选地,所述第一编写模块1103,具体用于:
以每个模块进行划分,创建一个文件;
以每个模块下的每个页面为一个类,在每个类中编写对应页面的功能操作方式。
可选地,所述第二编写模块1104,具体用于:
以每个页面为单位创建一个目标文件,每个目标文件中以每个测试点的数据进行划分,得到驱动数据文件和测试数据文件;其中,驱动数据文件包含实现每个测试点的所有动作,测试数据文件包含每个测试点的操作成功的正确结果。
可选地,所述第三编写模块1105,具体用于:
调用模块入口文件进入到当前验证功能的页面;
调用模块功能文件对应模块下的类中的对应功能点的操作方式,得到返回值;
将返回值与预期结果进行对比,如一致,则测试用例通过;其中,通过调用测试数据文件获取预期结果。
可选地,所述装置还包括:
发送模块,用于通过预设方式将测试报告发送至目标地址。
可选地,所述装置还包括:
本公开实施例所提供一种基于页面对象模型POM和数据驱动的自动化测试装置,可执行本公开页面对象模型POM和数据驱动的自动化测试方法,具备执行方法相应的功能模块和有益效果。
图12为本公开实施例提供的一种电子设备的结构示意图。
下面具体参考图12,其示出了适于用来实现本公开实施例中的电子设备1200的结构示意图。本公开实施例中的电子设备1200可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,电子设备1200可以包括处理装置(例如中央处理器、图形处理器等)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储装置1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。在RAM 1203中,还存储有电子设备1200操作所需的各种程序和数据。处理装置1201、ROM 1202以及RAM 1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
通常,以下装置可以连接至I/O接口1205:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1206;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置1207;包括例如磁带、硬盘等的存储装置1208;以及通信装置1209。通信装置1209可以允许电子设备1200与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的电子设备1200,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1209从网络上被下载和安装,或者从存储装置1208被安装,或者从ROM1202被安装。在该计算机程序被处理装置1201执行时,执行本公开实施例的流量检测规则的生成方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,在公共文件目录中创建公共文件和模块入口文件,在模块功能文件目录中编写各个模块对应的功能操作方式,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,在测试用例文件目录中编写验证对应页面的功能点的测试用例,在测试报告文件目录中编写测试所需的配置文件,在预设文件中构造测试集,用于批量执行测试用例,在测试报告文件目录中输出测试报告。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于页面对象模型POM和数据驱动的自动化测试方法,其特征在于,包括:
创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录;
在所述公共文件目录中创建公共文件和模块入口文件;
在所述模块功能文件目录中编写各个模块对应的功能操作方式;
在所述数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件;
在所述测试用例文件目录中编写验证对应页面的功能点的测试用例;
在所述测试报告文件目录中编写测试所需的配置文件;
在预设文件中构造测试集,用于批量执行所述测试用例,在所述测试报告文件目录中输出测试报告。
2.根据权利要求1所述的方法,其特征在于,所述在所述模块功能文件目录中编写各个模块对应的功能操作方式,包括:
以每个所述模块进行划分,创建一个文件;
以每个所述模块下的每个页面为一个类,在每个所述类中编写对应页面的功能操作方式。
3.根据权利要求1所述的方法,其特征在于,所述在所述数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,包括:
以每个页面为单位创建一个目标文件,每个所述目标文件中以每个测试点的数据进行划分,得到所述驱动数据文件和所述测试数据文件;其中,所述驱动数据文件包含实现每个测试点的所有动作,所述测试数据文件包含每个测试点的操作成功的正确结果。
4.根据权利要求1所述的方法,其特征在于,所述在所述测试用例文件目录中编写验证对应页面的功能点的测试用例,包括:
调用所述模块入口文件进入到当前验证功能的页面;
调用所述模块功能文件对应模块下的类中的对应功能点的操作方式,得到返回值;
将所述返回值与预期结果进行对比,如一致,则所述测试用例通过;其中,通过调用所述测试数据文件获取所述预期结果。
5.根据权利要求1所述的方法,其特征在于,还包括:
通过预设方式将所述测试报告发送至目标地址。
6.根据权利要求1所述的方法,其特征在于,
所述公共文件,用于封装公共方法及属性。
7.根据权利要求1所述的方法,其特征在于,
所述模块入口文件,用于控制从一个页面跳转到另一个页面。
8.一种基于页面对象模型POM和数据驱动的自动化测试装置,其特征在于,包括:
创建模块,创建公共文件目录、模块功能文件目录、数据文件目录、测试用例文件目录、测试报告文件目录,在公共文件目录中创建公共文件和模块入口文件;
编写模块,在模块功能文件目录中编写各个模块对应的功能操作方式,在数据文件目录中编写对应页面的功能点所需的驱动数据文件和测试数据文件,在测试用例文件目录中编写验证对应页面的功能点的测试用例,在所述测试报告文件目录中编写测试所需的配置文件;
构造输出模块,在预设文件中构造测试集,用于批量执行所述测试用例,在测试报告文件目录中输出测试报告。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7中任一所述的基于页面对象模型POM和数据驱动的自动化测试方法。
10.计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7中任一所述的终端控制方法。
CN202111348310.9A 2021-11-15 2021-11-15 基于pom和数据驱动的自动化测试方法和装置 Pending CN114048134A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111348310.9A CN114048134A (zh) 2021-11-15 2021-11-15 基于pom和数据驱动的自动化测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111348310.9A CN114048134A (zh) 2021-11-15 2021-11-15 基于pom和数据驱动的自动化测试方法和装置

Publications (1)

Publication Number Publication Date
CN114048134A true CN114048134A (zh) 2022-02-15

Family

ID=80209188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111348310.9A Pending CN114048134A (zh) 2021-11-15 2021-11-15 基于pom和数据驱动的自动化测试方法和装置

Country Status (1)

Country Link
CN (1) CN114048134A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978368A (zh) * 2022-05-17 2022-08-30 北京智网信测科技有限公司 一种5g射频测试例复用方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114978368A (zh) * 2022-05-17 2022-08-30 北京智网信测科技有限公司 一种5g射频测试例复用方法及装置

Similar Documents

Publication Publication Date Title
JP7371141B2 (ja) リアルタイムデータフロープログラミング言語のためのツールおよび方法
US9164870B2 (en) Integrated fuzzing
CN108347358B (zh) 云连接的自动化测试的方法和系统
US9846638B2 (en) Exposing method related data calls during testing in an event driven, multichannel architecture
US9286040B2 (en) Software builder
US10853227B2 (en) Systems and methods for modular test platform for applications
CN105159833A (zh) 自动化测试装置及方法
CN110013672B (zh) 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质
US20180081791A1 (en) Plugin for multi-module code coverage in web applications
US11422783B2 (en) Auto-deployment of applications
CN111949522A (zh) 用户界面自动化测试方法及装置
US10459698B2 (en) Framework for generating adapters in an integrated development environment
CN111488275B (zh) Ui自动化测试方法、装置、存储介质及电子设备
CN110737631A (zh) 一种基于Flink引擎的数据解析方法及装置
CN115658496A (zh) 可扩展的Web自动化测试方法、系统、设备及存储介质
CN112114789B (zh) 一种业务开发方法及设备
Sayagh et al. Multi-layer software configuration: Empirical study on wordpress
CN114048134A (zh) 基于pom和数据驱动的自动化测试方法和装置
CN114328250A (zh) 软件系统自动自检方法、介质和装置
US10606569B2 (en) Declarative configuration elements
CN116166907B (zh) 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置
CN115514677B (zh) 服务器拨测方法及系统
CN116467156A (zh) 联调测试方法、装置、存储介质及电子设备
CN113885841A (zh) 脚本生成的方法、装置、电子设备和可读介质
Amatya Cross-platform mobile development: An alternative to native mobile development

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