CN108073515A - 一种Multi-server自动化测试方法与系统 - Google Patents
一种Multi-server自动化测试方法与系统 Download PDFInfo
- Publication number
- CN108073515A CN108073515A CN201711277686.9A CN201711277686A CN108073515A CN 108073515 A CN108073515 A CN 108073515A CN 201711277686 A CN201711277686 A CN 201711277686A CN 108073515 A CN108073515 A CN 108073515A
- Authority
- CN
- China
- Prior art keywords
- test
- server
- code
- testing methods
- automated testing
- 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
Links
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/3664—Environments for testing or debugging software
-
- 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
-
- 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/3692—Test management for test results analysis
-
- 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
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
本发明提供一种Multi‑server自动化测试方法与系统,所述方法包括:搭建测试框架以及代码布局,执行自动化测试;越过登录验证码直接登录;页面元素定位和异常处理;统计测试结果并生成测试报告。本发明通过基于Python开发语言、Unittest测试框架和Selenium测试工具,实现Multi‑server管理平台的Web端和远程客户端交互的自动化测试,解决现有技术中Web程序自动化测试测试周期长的问题,实现每个迭代版本的测试周期为24小时,生成并自动发送测试报告,从而最大限度的利用闲置环境资源,实现每天的冒烟测试,节省大量人力,缩短测试周期,最大限度的增加了测试覆盖面。
Description
技术领域
本发明涉及软件测试领域,特别是一种Multi-server自动化测试方法与系统。
背景技术
软件测试是软件开发周期中必不可少的一个重要环节,它推动着软件开发,促使软件功能的实现和优化,并发现和解决软件存在的缺陷,保证了软件的完整性、稳定性以及在日益激烈的市场中的竞争力。
传统的软件测试,依赖于大量的手动测试,在一定程度上造成了资源浪费,测试周期缓慢等问题,尤其对于产品的迭代版本,一个完整的自动化测试,变得更为迫切。
自动化测试基于开发语言,当下Java和Python以其兼容性以及跨平台等特性,占据着主流市场,以其为基础的Multi-server产品可广泛的应用于各平台(可安装于绝大多数的Windows和Linux操作系统);除去开发语言,自动化测试框架是自动化测试的另一重要基础,主流应用的测试框架有pytest、unittest和testng等,但现有的自动化测试大都存在迭代版本测试周期长的问题。
发明内容
本发明的目的是提供一种Multi-server自动化测试方法与系统,旨在解决现有技术中Web程序自动化测试测试周期长的问题,实现最大限度的利用闲置环境资源,节省大量人力,缩短测试周期。
为达到上述技术目的,本发明提供了一种Multi-server自动化测试方法,包括以下步骤:
搭建测试框架以及代码布局,执行自动化测试;
越过登录验证码直接登录;
页面元素定位和异常处理;
统计测试结果并生成测试报告。
优选地,所述越过登录验证码直接登录具体为:判断登录请求的验证码是否与系统当前验证码或者预先设定的验证码相同,如果相同则登录成功,否则登录失败。
优选地,所述搭建测试框架以及代码布局具体操作为:定义测试类,继承Unittest测试框架的基本类unittest.TestCase,并加入自动化测试用例实现方法。
优选地,所述页面元素定位和异常处理具体为:利用Selenium测试工具进行元素定位,捕获并处理异常。
优选地,所述统计测试结果并生成测试报告具体为:使用HTMLTestRunner读取测试结果,在运行自动化测试后,记录测试日志,统计测试结果,生成html格式的测试报告。
优选地,所述方法还包括在本地运行环境与远程客户端之间进行文件传输。
本发明还提供了一种Multi-server自动化测试系统,包括:
测试框架搭建模块,用于搭建测试框架以及代码布局,执行自动化测试;
登录模块,用于越过登录验证码直接登录;
元素定位模块,用于页面元素定位和异常处理;
文件传输模块,用于实现本地运行环境与远程客户端之间的文件传输;
测试结果统计模块,用于统计测试结果并生成测试报告。
优选地,所述测试框架为Unittest测试框架。
优选地,所述元素定位采用Selenium测试工具。
优选地,所述测试结果采用HTMLTestRunner读取。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
与现有技术相比,本发明通过基于Python开发语言、Unittest测试框架和Selenium测试工具,实现Multi-server管理平台的Web端和远程客户端交互的自动化测试,解决现有技术中Web程序自动化测试测试周期长的问题,实现每个迭代版本的测试周期为24小时,生成并自动发送测试报告,从而最大限度的利用闲置环境资源,实现每天的冒烟测试,节省大量人力,缩短测试周期,最大限度的增加了测试覆盖面。
附图说明
图1为本发明实施例中所提供的一种Multi-server自动化测试方法流程图;
图2为本发明实施例中所提供的一种Multi-server自动化测试系统结构框图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
下面结合附图对本发明实施例所提供的一种Multi-server自动化测试方法与系统进行详细说明。
如图1所示,本发明实施例公开了一种Multi-server自动化测试方法,基于Python开发语言、Unittest测试框架和Selenium测试工具,具体包括以下步骤:
1.搭建测试框架以及代码布局,执行自动化测试。
本发明实施例采用Unittest测试框架。
Unittest测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。
定义测试类的父类Base类,继承基本类unittest.TestCase,其中封装所有case的共同方法:
class Base(unittest.TestCase):
由于考虑到测试业务的扩展,除却当前的web UI自动化,还可以加入自动化测试用例实现方法等,例如加入检查全部资源下防御模式的测试用例实现方法。
因此定义Base的子类,其他测试类的父类:
class WebAutoCase(base.Base):
在实际测试类的使用中,编写其他测试类:
class TestCompleteness(web_auto_case.WebAutoCase):
在定义好测试类后,执行自动化测试。
2.越过登录验证码直接登录。
在自动化测试过程中,远程主机的传统登录方式需要获取随机验证码,并输入正确的验证码后,方可登录成功。修改原有的登录检验验证码源代码片段,将登录方式改变为采用固定验证码登录方式,即输入指定验证码即可登录,因此可以实现固定验证码登录,而无需每次在登录时需要获取动态验证码并手动输入验证码。
重新编译当前文件,并在安装文件系统中替换,即可实现固定验证码登录。
3.页面元素定位和异常处理。
传统元素定位方法在存在问题、定位错误或者点击错误的时候,程序中止,不能捕获异常,容易导致定位问题复杂。
本发明实施例通过Selenium进行元素定位。
Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(SeleniumIDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。
重新封装元素定位方法,通过xpath、元素id以及鼠标点击事件等来定位元素的位置,并抛出异常,使得在存在问题、定位错误或者点击错误的时候,可以捕获并处理异常。
4.统计测试结果,记录测试日志并生成测试报告。
本发明实施例采用使用HTMLTestRunner读取测试结果。在运行自动化测试后,记录测试日志,统计测试结果,生成html格式的测试报告。
自动化测试过程还包括在本地运行环境与远程客户端之间进行文件传输。
在所有测试类的父类Base中,定义静态方法:
transport=paramiko.Transport((host,port))
transport=connect(username=user,password=password)//设置连接方式
sftp=paramiko.SFTPClient.from_transport(transport)//通过设置的连接方式连接远程主机
sftp.put(localpath=local_file,remotepath=remote_file)//下载文件
通过用户名、密码的形式连接远程主机,进行上传或者下载文件。
测试类继承Base类,既可调用此方法。
本发明实施例通过基于Python开发语言、Unittest测试框架和Selenium测试工具,实现Multi-server管理平台的Web端和远程客户端交互的自动化测试,解决现有技术中Web程序自动化测试测试周期长的问题,实现每个迭代版本的测试周期为24小时,生成并自动发送测试报告,从而最大限度的利用闲置环境资源,实现每天的冒烟测试,节省大量人力,缩短测试周期,最大限度的增加了测试覆盖面。
如图2所示,本发明实施例还公开了一种基于Python、Unittest和Selenium的Multi-server自动化测试系统,包括:
测试框架搭建模块,用于搭建测试框架以及代码布局,执行自动化测试;所述测试框架为Unittest测试框架。
登录模块,用于越过登录验证码直接登录;将登录方式改变为采用固定验证码登录方式,即输入指定验证码即可登录,因此可以实现自动化登录,而无需每次在登录时需要获取动态验证码并手动输入验证码。
元素定位模块,用于页面元素定位和异常处理;所述元素定位采用Selenium测试工具。重新封装元素定位方法,通过xpath、元素id以及鼠标点击事件等来定位元素的位置,并抛出异常,使得在存在问题、定位错误或者点击错误的时候,可以捕获并处理异常。
文件传输模块,用于实现本地运行环境与远程客户端之间的文件传输;通过用户名、密码的形式连接远程主机,进行上传或者下载文件。
测试结果统计模块,用于统计测试结果并生成测试报告;所述测试结果采用HTMLTestRunner读取。在运行自动化测试后,记录测试日志,统计测试结果,生成html格式的测试报告。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种Multi-server自动化测试方法,其特征在于,包括以下步骤:
搭建测试框架以及代码布局,执行自动化测试;
越过登录验证码直接登录;
页面元素定位和异常处理;
统计测试结果并生成测试报告。
2.根据权利要求1所述的一种Multi-server自动化测试方法,其特征在于,所述越过登录验证码直接登录具体为:判断登录请求的验证码是否与系统当前验证码或者预先设定的验证码相同,如果相同则登录成功,否则登录失败。
3.根据权利要求1所述的一种Multi-server自动化测试方法,其特征在于,所述搭建测试框架以及代码布局具体操作为:定义测试类,继承Unittest测试框架的基本类unittest.TestCase,并加入自动化测试用例实现方法。
4.根据权利要求1所述的一种Multi-server自动化测试方法,其特征在于,所述页面元素定位和异常处理具体为:利用Selenium测试工具进行元素定位,捕获并处理异常。
5.根据权利要求1所述的Multi-server自动化测试方法,其特征在于,所述统计测试结果并生成测试报告具体为:使用HTMLTestRunner读取测试结果,在运行自动化测试后,记录测试日志,统计测试结果,生成html格式的测试报告。
6.根据权利要求1所述的Multi-server自动化测试方法,其特征在于,所述方法还包括在本地运行环境与远程客户端之间进行文件传输。
7.一种Multi-server自动化测试系统,其特征在于,包括:
测试框架搭建模块,用于搭建测试框架以及代码布局,执行自动化测试;
登录模块,用于越过登录验证码直接登录;
元素定位模块,用于页面元素定位和异常处理;
文件传输模块,用于实现本地运行环境与远程客户端之间的文件传输;
测试结果统计模块,用于统计测试结果并生成测试报告。
8.根据权利要求7所述的一种Multi-server自动化测试系统,其特征在于,所述测试框架为Unittest测试框架。
9.根据权利要求8所述的一种Multi-server自动化测试系统,其特征在于,所述元素定位采用Selenium测试工具。
10.根据权利要求9所述的一种Multi-server自动化测试系统,其特征在于,所述测试结果采用HTMLTestRunner读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711277686.9A CN108073515A (zh) | 2017-12-06 | 2017-12-06 | 一种Multi-server自动化测试方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711277686.9A CN108073515A (zh) | 2017-12-06 | 2017-12-06 | 一种Multi-server自动化测试方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108073515A true CN108073515A (zh) | 2018-05-25 |
Family
ID=62158010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711277686.9A Pending CN108073515A (zh) | 2017-12-06 | 2017-12-06 | 一种Multi-server自动化测试方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073515A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727591A (zh) * | 2019-10-11 | 2020-01-24 | 集奥聚合(北京)人工智能科技有限公司 | 一种基于建模页面自动化测试方法 |
CN114281680A (zh) * | 2021-12-03 | 2022-04-05 | 苏州浪潮智能科技有限公司 | 一种web自动化测试方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999424A (zh) * | 2012-11-27 | 2013-03-27 | 广东欧珀移动通信有限公司 | 一种并行远程自动化测试的方法 |
US9098635B2 (en) * | 2008-06-20 | 2015-08-04 | Cadence Design Systems, Inc. | Method and system for testing and analyzing user interfaces |
-
2017
- 2017-12-06 CN CN201711277686.9A patent/CN108073515A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098635B2 (en) * | 2008-06-20 | 2015-08-04 | Cadence Design Systems, Inc. | Method and system for testing and analyzing user interfaces |
CN102999424A (zh) * | 2012-11-27 | 2013-03-27 | 广东欧珀移动通信有限公司 | 一种并行远程自动化测试的方法 |
Non-Patent Citations (2)
Title |
---|
CSDN博客: "自动化测试-通过Cookie跳过登录验证码", 《CSDN博客》 * |
高志娥 等: "无线搜索网页自动化测试的研究", 《吕梁学院学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727591A (zh) * | 2019-10-11 | 2020-01-24 | 集奥聚合(北京)人工智能科技有限公司 | 一种基于建模页面自动化测试方法 |
CN114281680A (zh) * | 2021-12-03 | 2022-04-05 | 苏州浪潮智能科技有限公司 | 一种web自动化测试方法及系统 |
CN114281680B (zh) * | 2021-12-03 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种web自动化测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Umar et al. | A study of automated software testing: Automation tools and frameworks | |
Zhang et al. | Compatibility testing service for mobile applications | |
CN109614313A (zh) | 自动化测试方法、装置及计算机可读存储介质 | |
CN103729294B (zh) | 应用软件性能脚本测试方法与装置 | |
CN108446190A (zh) | 接口测试方法及装置 | |
EP2615555A1 (en) | Framework for automated testing of mobile apps | |
US9489277B2 (en) | Application component testing | |
CN110740071B (zh) | 一种网络接口监控的方法、装置及系统 | |
CN108923997B (zh) | 一种基于python的云服务节点自动测试方法及装置 | |
CN112380255A (zh) | 一种业务处理方法、装置、设备和存储介质 | |
CN111078547A (zh) | 一种python通用app软件自动化测试框架系统 | |
CN112787895A (zh) | 一种网络巡检方法、装置和设备 | |
CN108073515A (zh) | 一种Multi-server自动化测试方法与系统 | |
Yu | Design and application on Agile software exploratory testing model | |
US8458664B2 (en) | Command line interface permutation executor | |
Cai et al. | Analysis for cloud testing of web application | |
CN113094267B (zh) | 一种测试结果收集方法及装置 | |
Singh et al. | Analysis of software testing techniques: Theory to practical approach | |
Patidar et al. | Survey on manual and automation testing strategies and tools for software application | |
CN114385258A (zh) | 自动化测试方法、装置、电子设备及存储介质 | |
Jacob et al. | Scrutiny on various approaches of software performance testing tools | |
Lamba et al. | An automated data driven continuous testing framework | |
Contan et al. | Automated testing framework development based on social interaction and communication principles | |
Bajaj | Hybrid Test Automation Framework for managing Test Data | |
US20140019983A1 (en) | Inversion of control for executable extensions |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180525 |
|
RJ01 | Rejection of invention patent application after publication |