CN111538649B - 一种基于selenium测试工具的web应用系统自动化测试的方法 - Google Patents
一种基于selenium测试工具的web应用系统自动化测试的方法 Download PDFInfo
- Publication number
- CN111538649B CN111538649B CN202010194600.1A CN202010194600A CN111538649B CN 111538649 B CN111538649 B CN 111538649B CN 202010194600 A CN202010194600 A CN 202010194600A CN 111538649 B CN111538649 B CN 111538649B
- Authority
- CN
- China
- Prior art keywords
- state
- transition
- matrix
- states
- test
- 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.)
- Active
Links
Images
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/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Abstract
本发明公开了一种基于selenium测试工具的web应用系统自动化测试的方法,该方法包括:分析待研究web应用系统的功能,构建系统功能流程图;将所述待研究web应用系统中的每一个网页看作是一个状态,根据所述系统功能流程图,确定状态数量和状态之间的转移关系;利用马尔科夫链模型描述并计算系统状态之间的转移概率,得到所述待研究web应用系统的最终状态转移矩阵;根据所述状态转移矩阵采用selenium测试工具对所述待研究web应用系统进行自动化测试。本发明使用selenium测试工具和马尔科夫链转移概率相结合,该方法能够实现测试用例的随机生成并立即执行,代替人手动编写和手动执行测试用例,相对于传统的能量软件测试方法,该方法能够更加有效的提升软件测试的效率。
Description
技术领域
本发明涉及Web自动化测试技术领域,具体涉及一种基于selenium测试工具的web应用系统自动化测试的方法。
背景技术
当今web系统在互联网中占据了很重要的地位,但是现在大多数企业的测试工作还是停留在人工测试的阶段,再加上软件测试投入的成本以及工作量占软件开发总成本的40%甚至更多,同时随着软件规模的不断增大,软件开发的复杂程度也随之上升,软件系统中发生错误的概率也随之增加,隐藏的缺陷也逐渐增多,费时费力软件测试效率低。
发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于selenium测试工具的web应用系统自动化测试的方法,解决了现有的软件测试人力程度高、浪费时间以及软件测试效率低的问题。
技术方案:本发明提供的基于selenium测试工具的web应用系统自动化测试的方法,该方法包括:
(1)分析待研究web应用系统的功能,构建系统功能流程图;
(2)将所述待研究web应用系统中的每一个网页看作是一个状态,根据所述系统功能流程图,确定状态数量和状态之间的转移关系,同时设定转移矩阵P∈Rn×n,并初始化转移矩阵中的元素全为0;
(3)利用马尔科夫链模型描述并计算系统状态之间的转移概率,得到所述待研究web应用系统的最终状态转移矩阵;
(4)根据所述状态转移矩阵采用selenium测试工具对所述待研究web应用系统进行自动化测试。
进一步地,包括:
所述步骤(3)具体包括:
(31)将状态Si,1≤i≤n所在状态作为目标层,Si可以转移到k个状态设为并且下标满足n为状态的总数,即转移的k个状态为总状态的一个子集,求解对应状态之间的转移概率表示状态Si分别转移到的转移概率,与状态Si没有转移关系的转移概率为0;
(34)若Si已全部遍历,则将转移矩阵P补充完整,进行步骤(4),否则把下一个状态当做Si,返回到步骤(1)。
进一步地,包括:
所述步骤(33)具体包括:
(331)求解判别矩阵A的最大特征值λmax,即:AY=λmaxY,其中,Y∈Rk是矩阵 A最大特征值λmax对应的特征向量;
(334)如果Si全部遍历了,将转移矩阵P补充完整,进行步骤(4),否则把下一个状态当作Si,返回到步骤(1)。
进一步地,包括:
所述步骤(4)具体包括:
(41)基于selenium测试工具编写测试脚本,并在脚本中添加测试数据,对状态S1,S2,..,Sn分别进行模块封装;
(42)构造状态空间[S1,S2,..,Sn],从状态空间中获取初始状态Sstart和结束状态Send。构造测试路径列表TP=[],并将初始状态Sstart添加到TP=[]中,从初始状态Sstart开始,利用模拟转移概率算法随机确定转移概率值,进而进行状态之间的转移,直到到达Send;
(43)假设当前状态为Si,若状态Si不是结束状态,从转移矩阵P中获取状态Si对应第i行所有不为0的转移概率值,即第i行的不为0的概率值,若Si可以转移到k个状态,分别为且下标满足且Si转移到状态的转移概率为将k条出边的转移概率进行累加,将k条出边的转移概率累计加和分别映射到[0,1]区间内,利用随机算法随机产生一个[0,1]的随机数 R(0<R<1),如果随机数落入区间段内,即:则选择j对应的边作为出边,即选择状态作为下一状态,并将状态Si添加到测试路径TP=[]中;
(44)当一条完整的测试路径被确定好之后,获取TP=[]列表,依次调用TP=[]中对应所有封装好的状态模块,执行模块中的脚本代码,到达相应的web页面,实现页面自动化测试;
(45)将测试脚本部署到Jenkins集成系统上,定时重复执行自动化测试,打印测试报告。
进一步地,包括:
所述步骤(43)中,将k条出边的转移概率进行累加,即:
有益效果:本发明所提出的以selenium测试工具为主,马尔科夫链为辅的web系统完全自动化测试方法,模拟了现实生活中人的真实操作,实现了软件测试的完全自动化。本发明使用selenium测试工具和马尔科夫链转移概率相结合,该方法能够实现测试用例的随机生成并立即执行,代替人手动编写和手动执行测试用例,相对于传统的能量软件测试方法,该方法能够更加有效的提升软件测试的效率。
附图说明
图1为本发明所述的层次分析模型图;
图2为本发明所述的平均随机性指标RI列表图;
图3为本发明所述的软件自动化测试流程图。
具体实施方式
下面结合说明书附图对本发明的实施方式进行描述。
本发明在windows7系统Web页面上进行实现,使用Python语言,采取selenium 测试工具结合WebDriver的方式模拟浏览器获取网页源代码,主要流程图如图1和3所示,
selenium测试工具是一个用于Web应用程序测试的工具,是一个基于浏览器的自动化工具,它 提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。selenium测试工具主要包括三部分:selenium测试工具IDE、selenium测试工具WebDriver和 selenium测试工具Grid,它提供了一套非常完整的API。本文主要采用selenium测试工具WebDriver,模拟用户的真实操作,代替人手动操作。
马尔可夫链(Markov chain),是概率论和数理统计中具有马尔科夫性质且存在于离散的指数集和状态空间中的随机过程。马尔科夫链具有马尔可夫性,马尔科夫性质就是指已知当前的状态,将来的状态与过去的状态无关。而软件操作具有下一个状态仅仅与当前的状态有关,无论之前的软件如何运作。所以我们可以使用马尔科夫链来模拟软件的使用,构建使用模型。马尔科夫链使用模型是从开始状态经过很多中间状态到结束状态的一种建模方式。从测试开始到测试结束之间可以有很多条路径,一条路径即代表一条测试用例。
本发明主要基于马尔科夫链和selenium测试工具相结合,模拟用户在真实环境中的操作,实现web应用程序真正意义上的自动化测试,即自动生成测试用例并执行。首先基于马尔科夫链构建使用模型,为软件测试用例的自动生成提供基础。然后基于selenium 测试工具编写测试脚本,参考构建好的马尔科夫链模型结构,对应使用模型中的每一个状态,对其进行模块封装,然后利用转移概率模拟算法确定初始状态之后的状态走向,即测试用例的生成,状态确定之后我们即可执行该路径。该方法可以从很大程度上节省人力、时间,提供更加、更可靠的测试结果,进而提升软件测试的效率。
软件测试作为软件系统生命周期的一个重要组成部分,在整个软件开发过程中占有很大的工作量比重,所以提升软件测试的效率对于整个软件生命周期具有重要的意义。本发明是针对Web应用程序实现软件测试自动化。由于构建马尔科夫链使用模型具体分为两步:1.构建模型结构2.指定各边对应的转移概率,所以下面分别进行阐述。具体执行主要分为以下三步:
第一步:根据项目需求说明书建立马尔科夫链模型结构。如:用户如何使用软件,软件对于激励会有什么反应软件可以做什么等。一般软件的规格说明书和需求文档会对软件的操作功能和操作进行描述,所以我们主要来源就是软件的规格说明文档和需求文档。
第二步:确定马尔科夫链使用模型的转移概率。由于我们没有用户使用的数据和历史版本,所以我们采用层次分析法确定状态之间的转移概率。层次分析方法是将人的主观判断用数学形式量化,首先通过量化每个因素对于问题层的权重,然后量化方案对影响因素层的权重,最后得到每个方案的权值,从而理性决策。
第三步:结合马尔科夫链使用模型,基于selenium测试工具实现web应用系统的完全自动化测试,实现测试用例的随机生成和自动执行,即测试用例生成和执行同时进行。具体的,第一步:建立web应用系统状态转移图,具体包括以下子步骤:
step1:根据待研究web应用系统的需求说明书和设计书,分析系统功能,构建系统功能流程图。
step2:将web应用系统中的每一个网页看做是一个状态,网页之间通过网络地址调用完成状态之间的转移。根据系统功能流程图,确定状态数量和状态之间的转移关系,共有n个状态,分别为S1,S2,...,Sn。同时设定转移矩阵P∈Rn×n,并初始化转移矩阵中的元素全为0。
第二步:求解web应用系统状态转移矩阵。
利用马尔科夫链模型描述并计算系统状态之间的转移概率,从而得出系统最终状态转移矩阵P,具体包括以下子步骤:
Step1:将状态Si(1≤i≤n)所在状态作为目标层,Si可以转移到k个状态设为并且下标满足即转移的k个状态为总状态的一个子集,求解对应状态之间的转移概率 表示状态Si分别转移到的转移概率,与状态Si没有转移关系的转移概率为0。
Step3:对判别矩阵进行一致性判别。
1)求解判别矩阵A的最大特征值λmax,即AY=λmaxY,其中Y∈Rk是矩阵A最大特征值λmax对应的特征向量。
Step4:如果Si(1≤i≤n)全部遍历了,将转移矩阵P补充完整,进行第三步,否则把下一个状态当做Si,返回到本步骤的step1。
第三步:实现web应用系统的自动化测试。具体包括以下子步骤:
Step1:在脚本中添加测试数据,对状态S1,S2,..,Sn分别进行模块封装。
Step2:构造状态空间[S1,S2,..,Sn]。从状态空间中获取初始状态Sstart和结束状态Send。构造测试路径列表TP=[],并将初始状态Sstart添加到TP=[]中。从初始状态Sstart开始,利用模拟转移概率算法随机确定转移概率值,进而进行状态之间的转移,直到到达Send。
Step3:假设当前状态为Si(1≤i≤n),若状态Si不是结束状态,从转移矩阵P中获取状态Si对应第i行所有不为0的转移概率值,即第i行的不为0的概率值,若Si可以转移到k个状态,分别为且下标满足且Si转移到状态的转移概率为将k条出边的转移概率进行累加,即:
...
将k条出边的转移概率累计加和分别映射到[0,1]区间内,利用随机算法随机产生一个[0,1]的随机数R(0<R<1),如果随机数落入区间段内,即:则选择j对应的边作为出边,即选择状态作为下一状态,并将状态Si添加到测试路径TP=[]中。
Step4:当一条完整的测试路径被确定好之后,获取TP=[]列表,依次调用TP=[]中对应所有封装好的状态模块,执行模块中的脚本代码,到达相应的web页面,实现页面自动化测试。
Step5:将测试脚本部署到Jenkins集成系统上,定时重复执行自动化测试,打印测试报告。
将自动化测试脚本部署到Jenkins上,定时多次的执行测试脚本,让测试路径被更多的自动生成和执行,保证软件测试的可靠性,监控测试脚本的运行情况,打印测试报告。
Claims (1)
1.一种基于selenium测试工具的web应用系统自动化测试的方法,其特征在于,该方法包括:
(1)分析待研究web应用系统的功能,构建系统功能流程图;
(2)将所述待研究web应用系统中的每一个网页看作是一个状态,根据所述系统功能流程图,确定状态数量和状态之间的转移关系,同时设定转移矩阵P∈Rn×n,并初始化转移矩阵中的元素全为0;
(3)利用马尔科夫链模型描述并计算系统状态之间的转移概率,得到所述待研究web应用系统的最终状态转移矩阵;
(4)根据所述状态转移矩阵采用selenium测试工具对所述待研究web应用系统进行自动化测试;
所述步骤(3)具体包括:
(31)将状态Si,1≤i≤n所在状态作为目标层,Si转移到k个状态设为并且下标满足n为状态的总数,即转移的k个状态为总状态的一个子集,求解对应状态之间的转移概率表示状态Si分别转移到的转移概率,与状态Si没有转移关系的转移概率为0;
(34)若Si已全部遍历,则将转移矩阵P补充完整,进行步骤(4),否则把下一个状态当做Si,返回到步骤(1);
所述步骤(33)具体包括:
(331)求解判别矩阵A的最大特征值λmax,即:AY=λmaxY,其中,Y∈Rk是矩阵A最大特征值λmax对应的特征向量;
(333)通得到对应矩阵阶数的平均随机性指标RI,并计算一致性比例CR,
(334)如果Si全部遍历了,将转移矩阵P补充完整,进行步骤(4),否则把下一个状态当作Si,返回到步骤(1);
所述步骤(4)具体包括:
(41)基于selenium测试工具编写测试脚本,并在脚本中添加测试数据,对状态S1,S2,..,Sn分别进行模块封装;
(42)构造状态空间[S1,S2,..,Sn],从状态空间中获取初始状态Sstart和结束状态Send;构造测试路径列表TP=[],并将初始状态Sstart添加到TP=[]中,从初始状态Sstart开始,利用模拟转移概率算法随机确定转移概率值,进而进行状态之间的转移,直到到达Send;
(43)假设当前状态为Si,若状态Si不是结束状态,从转移矩阵P中获取状态Si对应第i行所有不为0的转移概率值,即第i行的不为0的概率值,若Si转移到k个状态,分别为且下标满足且Si转移到状态的转移概率为将k条出边的转移概率进行累加,将k条出边的转移概率累计加和分别映射到[0,1]区间内,利用随机算法随机产生一个[0,1]的随机数R,0<R<1,如果随机数落入区间段内,即:则选择j对应的边作为出边,即选择状态作为下一状态,并将状态Si添加到测试路径TP=[]中;
(44)当一条完整的测试路径被确定好之后,获取TP=[]列表,依次调用TP=[]中对应所有封装好的状态模块,执行模块中的脚本代码,到达相应的web页面,实现页面自动化测试;
(45)将测试脚本部署到Jenkins集成系统上,定时重复执行自动化测试,打印测试报告;
所述步骤(43)中,将k条出边的转移概率进行累加,即:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010194600.1A CN111538649B (zh) | 2020-03-19 | 2020-03-19 | 一种基于selenium测试工具的web应用系统自动化测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010194600.1A CN111538649B (zh) | 2020-03-19 | 2020-03-19 | 一种基于selenium测试工具的web应用系统自动化测试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538649A CN111538649A (zh) | 2020-08-14 |
CN111538649B true CN111538649B (zh) | 2022-09-23 |
Family
ID=71976745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010194600.1A Active CN111538649B (zh) | 2020-03-19 | 2020-03-19 | 一种基于selenium测试工具的web应用系统自动化测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538649B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256591A (zh) * | 2020-11-12 | 2021-01-22 | 北京联创信安科技股份有限公司 | 一种测试用例生成方法、装置、测试设备及存储介质 |
CN113157582B (zh) * | 2021-04-28 | 2024-03-08 | 中国工商银行股份有限公司 | 测试脚本执行序列确定方法及装置 |
CN113379399B (zh) * | 2021-08-13 | 2022-06-07 | 南京新一代人工智能研究院有限公司 | 一种基于状态转移概率模型的rpa组件推荐方法 |
CN113792247B (zh) * | 2021-11-12 | 2022-06-21 | 中航金网(北京)电子商务有限公司 | 基于代码特征生成功能流程图的方法、装置、设备和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375934A (zh) * | 2014-10-22 | 2015-02-25 | 江苏科技大学 | 一种Android手机软件可靠性测试方法 |
CN107656864A (zh) * | 2016-11-09 | 2018-02-02 | 华东师范大学 | 一种基于概率模型的移动应用自动化测试方法 |
-
2020
- 2020-03-19 CN CN202010194600.1A patent/CN111538649B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375934A (zh) * | 2014-10-22 | 2015-02-25 | 江苏科技大学 | 一种Android手机软件可靠性测试方法 |
CN107656864A (zh) * | 2016-11-09 | 2018-02-02 | 华东师范大学 | 一种基于概率模型的移动应用自动化测试方法 |
Non-Patent Citations (1)
Title |
---|
一种支持用例自动生成的自动化测试系统设计与实现;陈思民;《中国优秀硕士学位论文全文数据库》;20190515;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111538649A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538649B (zh) | 一种基于selenium测试工具的web应用系统自动化测试的方法 | |
Ïpek et al. | Efficiently exploring architectural design spaces via predictive modeling | |
CN108549770B (zh) | 基于qga-mmrvm的堆石坝材料参数自适应反演方法 | |
CN109308571B (zh) | 配电线路线变关系检测方法 | |
CN106897833B (zh) | 一种新能源配电网可靠性的评估方法及装置 | |
CN102110013B (zh) | 用于有效生成处理器体系结构模型的方法和设备 | |
CN112733997A (zh) | 基于woa-lstm-mc的水文时间序列预测优化方法 | |
CN114186405A (zh) | 一种核动力反应堆系统的参数不确定性分析方法及系统 | |
CN112819225A (zh) | 基于bp神经网络和arima模型的碳市场价格预测方法 | |
CN115982141A (zh) | 一种针对时序数据预测的特征优化方法 | |
CN102697491B (zh) | 心电图特征波形识别方法和系统 | |
CN109885875A (zh) | 一种涡轮叶片概率损伤容限分析方法 | |
CN101609411B (zh) | 一种基于复杂度的嵌入式软件功耗bp神经网络建模方法 | |
CN115217152B (zh) | 一种沉管隧道管节接头张合变形的预测方法及装置 | |
CN116662674A (zh) | 一种基于高效马尔科夫毯学习机制的服务推荐方法及系统 | |
CN116579408A (zh) | 一种基于模型结构冗余度的模型剪枝方法及系统 | |
CN114519429B (zh) | 获取目标体系的可观测量的方法、装置及介质 | |
CN115048857A (zh) | 一种基于cnn的暂稳极限传输功率的确定方法 | |
CN106020982A (zh) | 一种软件组件资源消耗模拟方法 | |
CN113762591A (zh) | 一种基于gru和多核svm对抗学习的短期电量预测方法及系统 | |
CN111026661A (zh) | 一种软件易用性全面测试方法及系统 | |
CN116757098B (zh) | 一种基于swat模型多目标优化的自动化校验方法 | |
Silva-Filho et al. | An optimization mechanism intended for two-level cache hierarchy to improve energy and performance using the nsgaii algorithm | |
Tektas et al. | A Bayesian approach to parameter estimation in binary logit and probit models | |
Dong et al. | Embedded software reliability prediction based on software life cycle |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 210003 Gulou District, Jiangsu, Nanjing new model road, No. 66 Applicant after: NANJING University OF POSTS AND TELECOMMUNICATIONS Address before: Yuen Road Qixia District of Nanjing City, Jiangsu Province, No. 9 210000 Applicant before: NANJING University OF POSTS AND TELECOMMUNICATIONS |
|
GR01 | Patent grant | ||
GR01 | Patent grant |