CN113672505B - 一种多终端交互自动化回归测试的方法 - Google Patents

一种多终端交互自动化回归测试的方法 Download PDF

Info

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
Application number
CN202110897771.5A
Other languages
English (en)
Other versions
CN113672505A (zh
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.)
Zhejiang Wanpeng Education Science And Technology Stock Co ltd
Original Assignee
Zhejiang Wanpeng Education Science And Technology Stock 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 Zhejiang Wanpeng Education Science And Technology Stock Co ltd filed Critical Zhejiang Wanpeng Education Science And Technology Stock Co ltd
Priority to CN202110897771.5A priority Critical patent/CN113672505B/zh
Publication of CN113672505A publication Critical patent/CN113672505A/zh
Application granted granted Critical
Publication of CN113672505B publication Critical patent/CN113672505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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"))。
CN202110897771.5A 2021-08-05 2021-08-05 一种多终端交互自动化回归测试的方法 Active CN113672505B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036073A (zh) * 2022-01-07 2022-02-11 荣耀终端有限公司 终端设备的测试方法和测试装置

Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 成都库珀区块链科技有限公司 一种自动化回归测试方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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