CN113672505B - 一种多终端交互自动化回归测试的方法 - Google Patents
一种多终端交互自动化回归测试的方法 Download PDFInfo
- Publication number
- CN113672505B CN113672505B CN202110897771.5A CN202110897771A CN113672505B CN 113672505 B CN113672505 B CN 113672505B CN 202110897771 A CN202110897771 A CN 202110897771A CN 113672505 B CN113672505 B CN 113672505B
- Authority
- CN
- China
- Prior art keywords
- test
- tested
- case
- devices
- report
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 155
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 17
- 230000003993 interaction Effects 0.000 claims description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 claims description 2
- 238000009434 installation Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013522 software testing Methods 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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明公开了一种多终端交互自动化回归测试的方法。本发明步骤如下:步骤1、将被测设备与电脑通过USB数据线相连,根据测试所需,输入被测设备数量、用例编号、被测App用户角色;步骤2、完成测试前准备工作,包括获取被测设备信息、启动Appium、安装被测App、启动被测App;步骤3、读取Excel中编写的测试用例编号,按用例编号执行测试用例,测试用例包括被测模块、操作说明、操作名称、操作内容、安卓版本兼容性、是否多线程锁定;步骤4、结束测试并生成测试报告,利用python+unittest+HTMLtestrunner,完成测试报告的生成。本发明极大的提高了回归测试的效率,减少了人工成本及出错概率,提升测试进度和质量。
Description
技术领域
本发明属于软件测试领域,具体地涉及一种多终端交互自动化回归测试的方法。
背景技术
回归测试在软件生命周期中是一个非常重要的部分,在软件开发的过程中会反复进行回归测试,而新版本的快速迭代,都使得回归测试的工作量和重复率增大。使用手工测试来进行回归测试,除了增加工作量,还存在很多其他不可控因素,进而影响测试的进度和质量。
本发明开发了一种多终端交互自动化回归测试的方法,只需要在电脑上执行自动化测试程序,就能够根据提前设定好的测试用例自动完成安卓移动端App回归测试工作,并且可以控制多台移动端设备之间的交互,最终将测试的结果以报告的形式生成,减轻测试人员的压力及成本。而且可以在多台电脑上执行测试程序,大大提升测试效率。因为通过程序执行测试,使得测试更具有一致性和可重复性,也可以完成更多更繁琐的测试,这样也就使得回归测试更方便。
发明内容
本发明的目的是针对手工回归测试非常耗时耗力的情况,提供一种多终端交互自动化回归测试的方法。
所述的被测设备为安卓移动端设备。
本发明解决其技术问题所采用的技术方案如下:
步骤1、将被测设备与电脑通过USB数据线相连,根据测试所需,输入被测设备数量、用例编号、被测App用户角色。
步骤2、完成测试前准备工作,包括获取被测设备信息(设备型号、***版本、屏幕分辨率等)、启动Appium、安装被测App、启动被测App。
步骤3、读取Excel中编写的测试用例,按用例执行测试,测试用例包括被测模块、操作说明、操作名称、操作内容、安卓版本兼容性、是否多线程锁定。
步骤4、结束测试并生成测试报告,利用
python+unittest+HTMLtestrunner,完成测试报告的生成,测试报告内容包括测试人员姓名、测试信息(被测设备数量、被测App用户角色、用例序号、被测设备型号、被测设备***版本、被测设备屏幕分辨率)、测试开始时间、测试合计耗时、测试结果(通过用例数、通过率)、图表统计测试结果占比、表格统计(用例名称、测试结果、操作日志、截图)。
本发明有益效果如下:
1.只需要在电脑上执行自动化测试程序,就能够根据提前设定好的测试用例自动完成安卓移动端App回归测试工作;
2.自动化生成测试报告;
3.可以在多台电脑上执行测试程序,大大提升测试效率;
以被测App业务为例,一个熟悉功能的测试人员完成完整功能的回归测试需要2.5小时;通过自动化测试程序,控制在10秒内即可开始执行测试后续无需人工介入,节约了99%人工时间。而通过一台电脑运行自动化测试程序只需要1.5小时,测试时长节约40%;或使用2台电脑同时运行自动化测试程序,测试时长至少再节约50%。
4.使得回归测试更具有一致性和可重复性,也可以完成更多更繁琐的回归测试;
综上所述,本发明极大的提高了回归测试的效率,减少了人工成本及出错概率,提升测试进度和质量。
具体实施方式
步骤1、将被测设备与电脑通过USB数据线相连,根据测试所需,输入被测设备数量、用例编号、被测App用户角色;
所述的数据输入实现如下:
程序通过input("请输入").strip()获取输入的被测设备数量、用例编号、被测App用户角色数据,利用logging将程序中输入的数据、获取的设备信息、执行测试的操作等记录到日志文件中。
步骤2、完成测试前准备工作,包括获取被测设备信息(设备型号、***版本、屏幕分辨率等)、启动Appium、安装被测App、启动被测App;
所述的测试前准备工作实现如下:
1、通过os.popen('adb devices')获取被测设备列表,再通过正则表达式截取deviceId;
2、通过os.popen('adb-s'+deviceId+'shell getpropro.build.version.release')获取被测设备版本信息,再通过正则表达式截取被测设备***版本号;
3、通过os.popen('adb-s'+deviceId+'shell getprop ro.product.model')获取被测设备型号;
4、通过driver.get_window_size()获取被测设备分辨率;
5、启动Appium前判断是否端口占用,根据被测设备数量,启动对应数量的Appium;
6、根据输入的测试用例判断是否跳过安装被测App;
7、webdriver.Remote启动不同被测设备上的App。
步骤3、读取Excel中编写的测试用例,按用例执行测试,测试用例包括被测模块、操作说明、操作名称、操作内容、安卓版本兼容性、是否多线程锁定;
所述的读取Excel中编写的测试用例,具体实现如下:
利用xlrd.open_workbook打开Excel文件,在Sheet1中从第二行开始读取数据,包括被测模块、操作说明、操作名称、操作内容、安卓版本兼容性、是否多线程锁定。
所述的按用例执行测试,具体实现如下:
1、判断用例中的操作名称在事先定义好的操作字典中是否存在,如果在则继续执行,否则返回测试失败,提示“未知操作名称”;
2、当用例中的操作名称与操作字典中匹配时,判断用例中的安卓版本兼容性与被测设备***版本是否匹配,匹配则继续执行,否则返回测试失败
3、当操作名称和安卓版本兼容性都匹配时,CMD_MAP[cmd](driver,newRest)执行操作内容,CMD_MAP为操作字典,cmd为操作名称,newRest为操作内容。设置隐式等待时间5s,且尝试执行操作3次,如尝试3次仍操作失败,即返回测试失败;
4、当测试用例需要两台设备交互时,需要开启线程,根据用例中“是否多线程锁定”的标识来控制A设备执行完后暂停运行并通知 B设备开始运行,直至B设备完成相应操作后暂停运行并通知A设备继续运行;当用例执行完后通知所有暂停的设备继续运行;
5、通过self.assertTrue()的返回值来判定,当用例全部执行完判定为测试成功;测试成功或失败通过common.screenshot()进行截图并保存到本地目录;
步骤4、结束测试并生成测试报告,利用 python+unittest+HTMLtestrunner,完成测试报告的生成,测试报告内容包括测试人员姓名、测试信息(被测设备数量、被测App用户角色、用例序号、被测设备型号、被测设备***版本、被测设备屏幕分辨率)、测试开始时间、测试合计耗时、测试结果(通过用例数、通过率)、图表统计测试结果占比、表格统计(用例名称、测试结果、操作日志、截图)
所述的结束测试具体实现如下:
1、driver.quit()关闭被测App进程;
2、关闭Appium,通过os.popen('netstat-aon|findstr端口') 查看appium进程并截取进程号,通过os.popen('taskkill/f/pid 进程号')结束进程;
所述的生成测试报告,具体实现如下:
1、open(PATH('../report/result.html'),'wb')打开测试报告文件;
2、HTMLTestRunner()定义测试报告,包括测试人员姓名、测试信息(被测设备数量、被测App用户角色、用例序号、被测设备型号、被测设备***版本、被测设备屏幕分辨率)、测试开始时间、测试合计耗时、测试结果(通过用例数、通过率)、图表统计测试结果占比、表格统计(用例名称、测试结果、操作日志、截图);
3、runner.run(testsuit)执行单元测试,汇总 self.assertTrue()的返回值统计pass、fail个数以表格、图表形式写入测试报告,读取logging中的日志及截图地址写入测试报告,将获取的被测设备信息、测试人员姓名、测试开始时间、耗时写入测试报告;
4、driver=webdriver.Chrome()使用谷歌浏览器自动打开生成的测试报告driver.get(PATH("../report/result.html"))。
Claims (4)
1.一种多终端交互自动化回归测试的方法,其特征在于包括如下实现步骤:
被测设备为安卓移动端设备;
步骤1、将被测设备与电脑通过USB数据线相连,根据测试所需,输入被测设备数量、用例编号、被测App用户角色;
步骤2、完成测试前准备工作,包括获取被测设备信息、启动Appium、安装被测App、启动被测App;所述的被测设备信息包括设备型号、***版本、屏幕分辨率;
步骤3、读取Excel中编写的测试用例编号,按用例编号执行测试用例,测试用例包括被测模块、操作说明、操作名称、操作内容、安卓版本兼容性、是否多线程锁定;
步骤4、结束测试并生成测试报告,利用
python+unittest+HTMLtestrunner,完成测试报告的生成,测试报告内容包括测试人员姓名、测试信息、测试开始时间、测试合计耗时、测试结果、图表统计测试结果占比、表格统计;
测试信息包括被测设备数量、被测App用户角色、用例序号、被测设备型号、被测设备***版本、被测设备屏幕分辨率;测试结果包括通过用例数、通过率;表格统计包括用例名称、测试结果、操作日志、截图;
步骤1所述的数据输入实现如下:
程序通过input("请输入").strip()获取输入的被测设备数量、用例编号、被测App用户角色数据,利用logging将程序中输入的数据、获取的被测设备信息、执行测试的操作记录到日志文件中;
步骤2所述的测试前准备工作实现如下:
1、通过os.popen('adb devices')获取被测设备列表,再通过正则表达式截取deviceId;
2、通过os.popen('adb-s'+deviceId+'shell getpropro.build.version.release')获取被测设备版本信息,再通过正则表达式截取被测设备***版本号;
3、通过os.popen('adb-s'+deviceId+'shell getpropro.product.model')获取被测设备型号;
4、通过driver.get_window_size()获取被测设备屏幕分辨率;
5、启动Appium前判断默认端口是否占用,根据被测设备数量,启动对应数量的Appium;
6、根据输入的测试用例编号判断是否跳过安装被测App;所述的用例编号自带标记,该标记用于判断是否需要安装被测App;
7、webdriver.Remote启动不同被测设备上的App;
步骤3所述的按用例编号执行测试用例,具体实现如下:
(1)判断用例中的操作名称在事先定义好的操作字典中是否存在,如果在则继续执行,否则返回测试失败,提示“未知操作名称”;
(2)当用例中的操作名称与操作字典中匹配时,判断用例中的安卓版本兼容性与被测设备***版本是否匹配,匹配则继续执行,否则返回测试失败;
(3)当操作名称和安卓版本兼容性都匹配时,CMD_MAP[cmd](driver,newRest)执行操作内容,CMD_MAP为操作字典,cmd为操作名称,newRest为操作内容;设置隐式等待时间5s,且尝试执行操作3次,如尝试3次仍操作失败,即返回测试失败;
(4)当测试用例需要两台设备交互时,需要开启线程,根据用例中“是否多线程锁定”的标识来控制A设备执行完后暂停运行并通知B设备开始运行,直至B设备完成相应操作后暂停运行并通知A设备继续运行;当前测试用例执行完后通知所有暂停的设备继续运行;
(5)若self.assertTrue()的返回值为成功,则当前测试全部执行完判定为测试成功;测试成功或失败通过common.screenshot()进行截图并保存到本地目录。
2.根据权利要求1所述的一种多终端交互自动化回归测试的方法,其特征在于步骤3所述的读取Excel中编写的测试用例,具体实现如下:
利用xlrd.open_workbook打开Excel文件,在Sheet1中从第二行开始读取数据,包括被测模块、操作说明、操作名称、操作内容、安卓版本兼容性、是否多线程锁定。
3.根据权利要求2所述的一种多终端交互自动化回归测试的方法,其特征在于步骤4所述的结束测试具体实现如下:
1)driver.quit()关闭被测App进程;
2)关闭Appium,通过os.popen('netstat-aon|findstr端口')查看Appium进程并截取进程号,通过os.popen('taskkill/f/pid进程号')结束进程。
4.根据权利要求2所述的一种多终端交互自动化回归测试的方法,其特征在于步骤4所述的生成测试报告,具体实现如下:
①open(PATH('../report/result.html'),'wb')打开测试报告文件;
②HTMLTestRunner()定义测试报告,包括测试人员姓名、测试信息、测试开始时间、测试合计耗时、测试结果、图表统计测试结果占比、表格统计;
测试信息包括被测设备数量、被测App用户角色、用例序号、被测设备型号、被测设备***版本、被测设备屏幕分辨率;测试结果包括通过用例数、通过率;表格统计包括用例名称、测试结果、操作日志、截图;
③runner.run(testsuit)执行单元测试,汇总self.assertTrue()的返回值统计pass、fail个数以表格、图表形式写入测试报告,读取logging中的日志及截图地址写入测试报告,将获取的被测设备信息、测试人员姓名、测试开始时间、耗时写入测试报告;
④driver=webdriver.Chrome()使用谷歌浏览器自动打开生成的测试报告driver.get(PATH("../report/result.html"))。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110897771.5A CN113672505B (zh) | 2021-08-05 | 2021-08-05 | 一种多终端交互自动化回归测试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110897771.5A CN113672505B (zh) | 2021-08-05 | 2021-08-05 | 一种多终端交互自动化回归测试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672505A CN113672505A (zh) | 2021-11-19 |
CN113672505B true CN113672505B (zh) | 2024-04-19 |
Family
ID=78541630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110897771.5A Active CN113672505B (zh) | 2021-08-05 | 2021-08-05 | 一种多终端交互自动化回归测试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672505B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114036073A (zh) * | 2022-01-07 | 2022-02-11 | 荣耀终端有限公司 | 终端设备的测试方法和测试装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508775A (zh) * | 2011-10-31 | 2012-06-20 | 彭勇 | 一种交互式自动化测试*** |
CN109359052A (zh) * | 2018-12-03 | 2019-02-19 | 北京车智赢科技有限公司 | 基于ui的移动端自动化测试方法及*** |
CN110674040A (zh) * | 2019-09-20 | 2020-01-10 | 广州虎牙科技有限公司 | 应用的测试方法、装置、设备和存储介质 |
US10579507B1 (en) * | 2006-08-14 | 2020-03-03 | Akamai Technologies, Inc. | Device cloud provisioning for functional testing of mobile applications |
CN112115055A (zh) * | 2020-09-21 | 2020-12-22 | 北京自如信息科技有限公司 | 一种多机自动化测试方法、装置及计算机设备 |
CN112256560A (zh) * | 2020-09-22 | 2021-01-22 | 北京达佳互联信息技术有限公司 | 应用程序测试方法、装置及电子设备 |
CN112395192A (zh) * | 2020-11-16 | 2021-02-23 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200034281A1 (en) * | 2017-01-11 | 2020-01-30 | Smartlytics Llc, Dba Quantyzd | System and method for automated intelligent mobile application testing |
US10445221B2 (en) * | 2018-03-08 | 2019-10-15 | Sauce Labs Inc. | Automated application testing system |
CN108932194A (zh) * | 2018-06-21 | 2018-12-04 | 北京京东金融科技控股有限公司 | 自动化测试方法、装置、***、介质及电子设备 |
CN109992513A (zh) * | 2019-03-29 | 2019-07-09 | 携程计算机技术(上海)有限公司 | 移动终端app的自动化测试***及方法 |
CN113010412A (zh) * | 2021-02-05 | 2021-06-22 | 成都库珀区块链科技有限公司 | 一种自动化回归测试方法及装置 |
-
2021
- 2021-08-05 CN CN202110897771.5A patent/CN113672505B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10579507B1 (en) * | 2006-08-14 | 2020-03-03 | Akamai Technologies, Inc. | Device cloud provisioning for functional testing of mobile applications |
CN102508775A (zh) * | 2011-10-31 | 2012-06-20 | 彭勇 | 一种交互式自动化测试*** |
CN109359052A (zh) * | 2018-12-03 | 2019-02-19 | 北京车智赢科技有限公司 | 基于ui的移动端自动化测试方法及*** |
CN110674040A (zh) * | 2019-09-20 | 2020-01-10 | 广州虎牙科技有限公司 | 应用的测试方法、装置、设备和存储介质 |
CN112115055A (zh) * | 2020-09-21 | 2020-12-22 | 北京自如信息科技有限公司 | 一种多机自动化测试方法、装置及计算机设备 |
CN112256560A (zh) * | 2020-09-22 | 2021-01-22 | 北京达佳互联信息技术有限公司 | 应用程序测试方法、装置及电子设备 |
CN112395192A (zh) * | 2020-11-16 | 2021-02-23 | 北京五八信息技术有限公司 | 一种信息处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
Mining Test Repositories for Automatic Detection of UI Performance Regressions in Android Apps;Maria Gomez等;《2016 IEEE/ACM 13th working Conference on Mining Software Repositories(MSR)》;20170126;13-24 * |
Web应用的自动化回归测试平台的研究与实现;唐宁;《中国优秀硕士论文全文数据库 信息科技辑》;20111215(第2011年S2期);I138-581 * |
基于Andriod平台智能手机多方面通话软件测试***的研究与实现;黄莹;《中国优秀硕士论文全文数据库 信息科技辑》;20140122(第2014年01期);I136-703 * |
Also Published As
Publication number | Publication date |
---|---|
CN113672505A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281570B2 (en) | Software testing method, system, apparatus, device medium, and computer program product | |
CN112100080B (zh) | 控件测试方法、装置、终端设备和计算机可读存储介质 | |
CN107135390A (zh) | 一种电视应用的自动化测试方法及*** | |
CN107783873B (zh) | 一种烧录器自动化测试平台的实现方法 | |
CN103970660A (zh) | 一种基于crontab的整机***稳定性的自动化测试方法 | |
CN106708718B (zh) | 服务框架接口测试方法与装置 | |
CN113672505B (zh) | 一种多终端交互自动化回归测试的方法 | |
CN111950212A (zh) | 高效的多模式验证平台及方法 | |
CN100363906C (zh) | 一种软件单元的测试方法 | |
CN111462811A (zh) | 自动化测试方法、装置、存储介质和电子设备 | |
CN111723009A (zh) | 一种python自动化测试系列产品的框架*** | |
Wang et al. | Research on mobile application automation testing technology based on appium | |
CN113315675B (zh) | 一种白盒交换机U-Boot自动化测试方法、***和存储介质 | |
CN103186459A (zh) | 基于脚本的java图形用户界面自动测试方法 | |
CN113126993B (zh) | 应用于车辆检测软件的自动化测试方法及其*** | |
CN112783769A (zh) | 一种自定义的自动化软件测试方法 | |
CN111597105A (zh) | 一种基于lv环境的自动化测试***及方法 | |
CN117367546A (zh) | 一种智能燃气表测试用例自动执行***及方法 | |
CN111444109A (zh) | 一种移动端ui自动化测试方法及*** | |
CN114578210B (zh) | 一种主板测试方法、装置、设备及存储介质 | |
CN112285542B (zh) | 一种面向fpga外部接口逻辑的调试与测试方法 | |
CN112015638A (zh) | 一种自动化测试方法及*** | |
CN112860582A (zh) | 一种本地语音识别模块生产测试方法 | |
CN111813665A (zh) | 一种基于python的大数据平台接口数据测试方法和*** | |
CN111581081A (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 |