CN107341107A - 一种嵌入式开发的自动化测试方法及测试主机 - Google Patents
一种嵌入式开发的自动化测试方法及测试主机 Download PDFInfo
- Publication number
- CN107341107A CN107341107A CN201710536721.8A CN201710536721A CN107341107A CN 107341107 A CN107341107 A CN 107341107A CN 201710536721 A CN201710536721 A CN 201710536721A CN 107341107 A CN107341107 A CN 107341107A
- Authority
- CN
- China
- Prior art keywords
- simulator
- default
- module
- parameter
- request
- 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.)
- Granted
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/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- 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/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
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)
- Medical Treatment And Welfare Office Work (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种嵌入式开发的自动化测试方法及测试主机,属于嵌入式开发产品的测试领域。该方法包括:测试主机根据预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收到模拟器返回的完成设置断点的信息时,向模拟器发送运行请求,接收到模拟器返回的成功响应时,向模拟器发送获取运行状态的请求,接收到模拟器返回的运行状态,当接收的运行状态为暂停时,根据预设的运行位置参数读取模拟器中运行结果,根据读取的运行结果生成并保存测试记录。本发明公开的方法及测试主机,可以进行深度和细致地测试到运行结果,并根据运行结果自动生成测试的测试记录,无需人工手动测试,在测试工序节省劳动力。
Description
技术领域
本发明涉及嵌入式开发产品的测试领域,尤其涉及一种嵌入式开发的自动化测试方法及测试主机。
背景技术
现有技术中,在对嵌入式开发的产品进行测试时,通常是对实际产品(例如测试卡片时,实际产品为实体的卡片)进行测试,或者在模拟器上对开发的产品进行测试。
现有技术对嵌入式开发的产品进行测试时,存在以下缺陷:对实际产品进行测试时(例如,对实体的卡片进行测试),只能测试卡片与读卡器之间传递的数据,即只能测试到卡片与外界的接口层次,而卡片内部具体是哪一部分出现异常无法得知;有些时候,即使卡片内部运行有问题,但是从卡片接口中读取的数据是正常的,因此卡片中一些深度和细致的地方测试不到,这些测试不到的地方往往会给产品带来极大的隐患。当使用模拟器对开发的产品进行测试时,测试人员只能通过观看模拟器运行状态,当运行到某一点有问题时,需要手动暂停进行调试,测试产品较多时,在测试工序中需要花费过多的时间和精力,浪费劳动力,同时,因为人工参与,测试结果很难重现。
发明内容
本发明为解决上述技术问题公开了一种嵌入式开发的自动化测试方法及测试主机。
本发明提供的一种嵌入式开发的自动化测试方法,包括以下步骤:
步骤S1:测试主机根据预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息;
步骤S2:所述测试主机向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
步骤S3:所述测试主机向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
步骤S4:所述测试主机判断接收的运行状态是否为暂停,是则执行步骤S5,否则返回步骤S3;
步骤S5:所述测试主机根据所述预设的运行位置参数读取所述模拟器中运行结果;
步骤S6:所述测试主机根据读取的所述运行结果生成并保存测试记录。
本发明提供的一种嵌入式开发的测试主机,包括:
预设保存模块,用于保存预设的运行位置参数;
断点设置模块,用于根据所述预设保存模块保存的预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息;
运行请求模块,用于所述断点设置模块接收所述模拟器返回的完成设置断点的信息之后,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
获取运行状态模块,用于所述运行请求模块接收所述模拟器返回的成功响应之后,向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
运行状态判断模块,用于判断所述获取运行状态模块接收的所述模拟器返回的运行状态是否为暂停;
所述获取运行状态模块,还用于所述运行状态判断模块判断结果为否时,向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
读取模块,用于所述运行状态判断模块判断结果为是时,根据所述预设保存模块保存的预设的运行位置参数读取所述模拟器中运行结果;
生成模块,用于根据所述读取模块读取的所述运行结果生成测试记录;
保存模块,用于保存所述生成模块生成的所述测试记录。
本发明的有益效果是:在对嵌入式开发的产品进行测试时,可以测试到深度和细致地方的运行结果,并根据运行结果自动生成测试的测试记录,无需人工手动测试,在测试工序节省劳动力。与此同时,本发明提供的方案可以自动生成并保存测试记录,因此具有很好的重现性。
附图说明
图1所示为本发明实施例1中一种嵌入式开发的自动化测试方法流程图。
图2所示为本发明实施例2中一种嵌入式开发的自动化测试方法流程图。
图3所示为本发明实施例3中一种嵌入式开发的自动化测试方法流程图。
图4所示为本发明实施例4中一种嵌入式开发的自动化测试方法流程图。
图5所示为本发明实施例5中一种嵌入式开发的测试主机的模块组成框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本实施例提供一种嵌入式开发的自动化测试方法,如图1所示,包括以下步骤:
步骤S1:测试主机根据预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息;
步骤S2:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应;
步骤S3:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
步骤S4:测试主机判断接收的运行状态是否为暂停,是则执行步骤S5,否则返回步骤S3;
可选地,测试主机判断接收的运行状态是为暂停时,执行步骤S5之前还包括:
步骤M1:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
步骤M2:测试主机判断接收的当前运行位置信息是否与预设的运行位置参数一致,是则执行步骤S5,否则返回步骤S2。
步骤S5:测试主机根据预设的运行位置参数读取模拟器中运行结果;
具体地,预设的运行位置参数包括预设地址和预设长度;
相应地,步骤S5,具体包括:
步骤S51:测试主机根据预设地址、预设长度和预设读操作符组织读取运行结果的请求,并将读取运行结果的请求发送给模拟器;
步骤S52:测试主机接收模拟器返回的运行结果。
具体地,步骤S52具体为:测试主机接收模拟器返回的响应数据,解析响应数据获取运行结果。
步骤S6:测试主机根据读取的运行结果生成并保存测试记录。
具体地,步骤S6具体为:测试主机判断读取的运行结果是否与预设结果一致,是则生成并保存成功的测试记录;否则生成并保存失败的测试记录。
具体地,上述步骤S52中,测试主机解析响应数据获取运行结果具体包括:
步骤a1:测试主机从响应数据中获取响应信息;
步骤a2:测试主机判断获取的响应信息中是否包括预设读操作符,是则执行步骤a3,否则获取响应数据中的下一条响应信息,继续判断;
步骤a3:测试主机解析获取的响应信息得到地址,判断得到的地址是否为预设地址,是则解析响应信息得到运行结果,否则生成异常信息;
相应地,上述步骤S6具体为:测试主机判断得到的地址为预设地址时,判断得到的运行结果是否与预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;测试主机判断得到的地址不为预设地址时,根据生成的异常信息生成失败的测试记录。
可选地,上述步骤S1之前,还包括:
步骤S0:测试主机向模拟器发送清除断点的请求,接收模拟器返回的完成清除断点的信息,执行步骤S1。
可选地,上述步骤S1之前,还包括:测试主机根据预设的安装包文件组织安装应用程序的请求,向模拟器发送安装应用程序的请求,接收到模拟器返回的完成安装应用程序的信息,执行步骤S1;
相应地,上述步骤S2具体为:测试主机向模拟器发送运行与安装包文件对应的应用程序的请求,接收模拟器返回的运行应用程序的信息。
本实施例中,安装应用程序的请求中包括预设的安装包文件的标识;运行与预设的安装包文件对应的应用程序的请求中包括预设的安装包文件的标识。
可选地,上述步骤S1之前,还包括:
步骤S01:测试主机根据预设的单步运行的起始位置参数组织单步设置断点的请求,向模拟器发送单步设置断点的请求,接收模拟器返回的完成设置断点的信息;
步骤S02:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应;
步骤S03:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
步骤S04:测试主机判断接收的运行状态是否为暂停,是则执行步骤S05,否则返回步骤S03;
可选地,测试主机判断接收的运行状态为暂停时,执行步骤S05之前,还包括:
步骤N1:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
步骤N2:测试主机判断接收的当前运行位置信息是否与预设的单步运行的起始位置参数一致,是则执行步骤S05,否则返回步骤S02。
步骤S05:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
步骤S06:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,执行步骤S1。
进一步地,上述步骤S6之后,还包括:测试主机还具有预设的单步运行的起始位置参数时,获取下一个预设的单步运行的起始位置,执行步骤S01;测试主机还具有预设的运行位置参数时,获取下一个预设的运行位置参数,执行步骤S1。
可选地,上述步骤S6之后,测试主机还具有预设步数的参数、预设的运行位置参数时,还包括:
步骤C001:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
步骤C002:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,获取下一个预设的运行位置参数,执行步骤S1。
可选地,上述步骤S1可以具体为:测试主机根据多个预设的运行位置参数组织设置多个断点的请求,将设置多个断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息;
相应地,测试主机接收模拟器返回的完成设置断点的信息之后、第一次读取模拟器中运行结果之前,还包括:测试主机获取第一个预设的运行位置参数,将第一个预设的运行位置参数作为当前预设的运行位置参数;
上述步骤S6之后,还包括:测试主机中没有预设的运行位置参数时,完成测试;测试主机中还有预设的运行位置参数时,获取下一个预设的运行位置参数,将下一个预设的运行位置参数作为当前预设的运行位置参数,执行步骤S2;
上述步骤S5具体为:测试主机根据当前预设的运行位置参数读取模拟器中运行结果。
本实施例中,上述预设的运行位置参数为预设的单步运行的起始位置参数时,步骤S2之前,还包括:
步骤C01:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应;
步骤C02:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
步骤C03:测试主机判断接收的运行状态是否为暂停,是则执行步骤C04,否则返回步骤C02;
步骤C04:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
步骤C05:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,执行步骤S2。
本实施例中,上述测试主机根据预设参数向模拟器发送修改参数的请求,具体为:测试主机根据预设数据参数、预设地址参数组织修改参数的请求,将修改参数的请求发送给模拟器。
具体地,上述修改参数请求中还包括预设写操作符;
相应地,上述测试主机接收模拟器返回的完成修改参数的信息,具体包括:
步骤L1:测试主机接收模拟器返回的响应数据,从响应数据获取响应信息;
步骤L2:测试主机判断获取的响应信息中是否包括预设写操作符,是则执行步骤L3,否则获取响应数据中的下一条响应信息,继续判断;
步骤L3:测试主机判断响应信息中是否包括修改成功的信息,是则修改参数成功;否则,修改参数失败,生成修改参数失败的信息,结束流程。
步骤S6中还包括:测试主机根据修改参数失败的信息生成并保存修改参数失败的记录。
本发明的有益效果是:在对嵌入式开发的产品进行测试时,可以测试到深度和细致地方的运行结果,并根据运行结果自动生成测试的测试记录,避免给产品带来不必要的隐患;无需人工手动测试,在测试工序节省劳动力,尤其需要测试多个预设的运行位置参数所对应的运行结果时,在很大程度上节省劳动力。与此同时,本发明提供的方案可以自动生成并保存测试记录,因此具有很好的重现性。
实施例2
本实施例提供一种嵌入式开发的自动化测试方法,如图2所示,测试主机执行的步骤包括:
步骤R1:测试主机连接模拟器,启动模拟器,连接模拟器中的仿真器。
具体地,测试主机连接模拟器,具体为:测试主机通过套接字与模拟器建立通信连接。
具体地,测试主机启动模拟器,连接模拟器中的仿真器具体包括:
步骤01:测试主机根据预设模拟器的地址组织启动指令,并向模拟器发送启动指令;
步骤02:测试主机接收到模拟器启动成功的信息,根据预设的仿真器地址向模拟器发送连接仿真器的请求。
本实施例中,模拟器中包括仿真器和虚拟机,测试主机与仿真器建立连接之后,仿真器与虚拟机建立连接。
例如,虚拟机为虚拟卡片时,相应地,仿真器为虚拟读卡器。
进一步地,步骤R1中,测试主机连接模拟器之后、启动模拟器之前,还包括:测试主机创建调试类,创建日志类。
步骤R2:测试主机接收到来自模拟器的连接仿真器成功的信息,向模拟器发送清除断点的请求,接收模拟器返回的完成清除断点的信息。
可选地,步骤R2中,测试主机向模拟器发送清除断点的请求之后、接收模拟器返回的完成清除断点的信息之前,还包括:所述模拟器执行清除断点操作,并将完成清除断点的信息发送给测试主机。
步骤R3:测试主机根据预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息。
例如,预设的运行位置参数具体为预设的PC指针数据。
步骤R4:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应。
步骤R5:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态。
步骤R6:测试主机判断接收的运行状态是否为暂停,是则执行步骤R7,否则返回步骤R5。
步骤R7:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
例如,当前运行位置信息具体为模拟器的当前PC指针信息。
步骤R8:测试主机判断接收的当前运行位置信息是否与预设的运行位置参数一致,是则执行步骤R9,否则返回步骤R4。
例如,测试主机判断接收的当前PC指针信息是否与预设的PC指针数据一致,是则执行步骤H9,否则返回步骤H4。
步骤R9:测试主机根据预设的运行位置参数读取模拟器中运行结果;
例如,预设的运行位置参数具体为预设的PC指针数据。
具体地,预设的运行位置参数包括预设地址和预设长度,相应地,步骤R9,具体包括:
步骤R91:测试主机根据预设地址、预设长度和预设读操作符组织读取运行结果的请求,并将读取运行结果的请求发送给模拟器;
步骤R92:测试主机接收模拟器返回的运行结果。
步骤R10:测试主机根据读取的运行结果生成并保存测试记录,还有预设的运行位置参数时,获取下一个预设的运行位置参数,返回步骤R3;没有预设的运行位置参数时,完成测试。
具体地,步骤R10中,测试主机根据读取的运行结果生成并保存测试记录,具体为:测试主机判断读取的运行结果是否与预设结果一致,是则生成并保存成功的测试记录;否则生成并保存失败的测试记录。
具体地,上述步骤R92具体为:测试主机接收模拟器返回的响应数据,解析响应数据获取运行结果。具体地,测试主机解析响应数据获取运行结果具体包括:
步骤a1:测试主机从响应数据中获取响应信息;
步骤a2:测试主机判断获取的响应信息中是否包括预设读操作符,是则执行步骤a3,否则获取响应数据中的下一条响应信息,继续判断;
步骤a3:测试主机解析获取的响应信息得到地址,判断得到的地址是否为预设地址,是则解析响应信息得到运行结果,否则生成异常信息;
相应地,上述步骤R10中,测试主机根据读取的运行结果生成并保存测试记录,具体为:测试主机判断得到的地址为预设地址时,判断得到的运行结果是否与预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;测试主机判断得到的地址不为预设地址时,根据生成的异常信息生成失败的测试记录。
可选地,步骤R2之后、步骤R3之前,还包括:
步骤R01:测试主机根据预设的单步运行的起始位置参数组织单步设置断点的请求,接收模拟器返回的完成设置断点的信息;
例如,预设的单步运行的起始位置参数具体为预设的单步运行的起始位置的PC指针数据。
步骤R02:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应;
步骤R03:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
步骤R04:测试主机判断接收的运行状态是否为暂停,是则执行步骤R05,否则返回步骤R03;
步骤R05:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
步骤R06:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,执行步骤R3。
本实施例中,测试主机需要测试修改参数之后的预设的运行位置参数所对应的位置的运行结果时,测试主机自动执行上述步骤R01-步骤R06,以及自动执行后续步骤R3-步骤R10的过程,无需人工参与,提高工作效率、提高测试的便捷性。
进一步地,上述步骤R04中,测试主机判断接收的运行状态为暂停时,执行步骤R05之前,还包括:
步骤N1:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;例如,当前运行位置信息具体为模拟器的当前PC指针信息;
步骤N2:测试主机判断接收的当前运行位置信息是否与预设的单步运行的起始位置参数一致,是则执行步骤R05,否则返回步骤R02。例如,测试主机判断接收的当前PC指针信息是否与预设的单步运行的起始位置的PC指针数据一致,是则执行步骤R05,否则返回步骤R02。
进一步地,上述步骤R10中,还包括:测试主机还具有预设的单步运行的起始位置参数时,获取下一个预设的单步运行的起始位置,执行步骤R01。
进一步地,上述步骤R10中,测试主机还具有预设步数的参数、预设的运行位置参数时,还包括:
步骤C01:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
步骤C02:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,获取下一个预设的运行位置参数,执行步骤S1。
可选地,步骤R3之前,还包括:测试主机根据预设的安装包文件组织安装应用程序的请求,向模拟器发送安装应用程序的请求,接收到模拟器返回的完成安装应用程序的信息,执行步骤R3;例如,安装应用程序的请求具体为安装应用程序的APDU指令;
相应地,上述步骤R4具体为:测试主机向模拟器发送运行与安装包文件对应的应用程序的请求,接收模拟器返回的运行应用程序的信息。
具体地,上述安装应用程序的请求中包括预设的安装包文件的标识;相应地,上述运行与预设的安装包文件对应的应用程序的请求中包括预设的安装包文件的标识。例如,当安装应用程序的请求为安装应用程序的APDU指令时,则安装应用程序的APDU指令中包括预设的安装包文件的标识。
具体地,上述测试主机根据预设参数向模拟器发送修改参数的请求,具体为:测试主机根据预设数据参数、预设地址参数组织修改参数的请求,将修改参数的请求发送给模拟器。
进一步具体地,修改参数请求中还包括预设写操作符;
相应地,上述测试主机接收模拟器返回的完成修改参数的信息,具体包括:
步骤L1:测试主机接收模拟器返回的响应数据,从响应数据获取响应信息;
步骤L2:测试主机判断获取的响应信息中是否包括预设写操作符,是则执行步骤L3,否则获取响应数据中的下一条响应信息,继续判断;
步骤L3:测试主机判断响应信息中是否包括修改成功的信息,是则修改参数成功;否则,修改参数失败,生成修改参数失败的信息,结束流程。
相应地,上述步骤R10中还包括:测试主机根据修改参数失败的信息生成并保存修改参数失败的记录。
实施例3
本实施例提供一种嵌入式开发的自动化测试方法,在本实施例中,预设的运行位置参数具体为预设的PC指针数据,安装应用程序的请求具体为安装应用程序的APDU指令,如图3所示,测试主机执行的步骤包括:
步骤101:测试主机连接模拟器,并启动模拟器。
具体地,测试主机连接模拟器,具体为:测试主机通过套接字与模拟器建立通信连接。
具体地,测试主机启动模拟器具体为:测试主机根据预设模拟器的地址组织启动指令,并向模拟器发送启动指令。
进一步地,步骤101中,测试主机连接模拟器之后、启动模拟器之前,还包括:测试主机创建调试类,创建日志类。
步骤102:测试主机接收到模拟器返回的启动成功信息,组织清除断点指令,向模拟器发送清除断点指令。
步骤103:测试主机接收到模拟器返回的完成清除断点信息,向模拟器发送连接仿真器指令。
具体地,测试主机向模拟器发送连接仿真器指令,具体为:测试主机根据预设的仿真器地址向模拟器发送连接仿真器的请求。
本实施例中,模拟器中包括仿真器和虚拟机,测试主机与仿真器建立连接之后,仿真器与虚拟机建立连接。
例如,虚拟机为虚拟卡片时,相应地,仿真器为虚拟读卡器。
步骤104:测试主机接收到模拟器返回的连接仿真器成功信息,根据预设的安装包文件组织安装应用程序的APDU指令,并将安装应用程序的APDU指令发送给模拟器,接收模拟器返回的完成安装应用程序的信息。
进一步地,安装应用程序的APDU指令中还包括预设的安装包文件的标识。
步骤105:测试主机根据预设的PC指针数据组织设置断点的命令,并将设置断点的命令发送给模拟器,接收到模拟器返回的完成设置断点的信息。
步骤106:测试主机向模拟器发送运行与预设的应用程序安装包对应的应用程序的APDU指令,接收模拟器返回的成功响应。
具体地,运行与预设的安装包对应的应用程序的APDU指令中包括预设的应用程序安装包文件的标识。
步骤107:测试主机向模拟器发送获取模拟器运行状态的APDU指令。
步骤108:测试主机接收模拟器返回的运行状态,并判断运行状态是否为暂停,是则执行步骤109,否则返回步骤107。
步骤109:测试主机向模拟器发送获取模拟器当前PC指针的指令。
步骤110:测试主机接收模拟器返回的当前PC指针,并判断当前PC指针是否与预设的PC指针数据一致,是则执行步骤111,否则返回步骤106。
步骤111:测试主机根据预设的PC指针数据组织读取模拟器中运行结果的指令,并向模拟器发送读取模拟器中运行结果的指令。
具体地,预设的PC指针数据包括预设地址、预设长度;相应地,步骤111中,测试主机根据预设的PC指针数据组织读取模拟器中运行结果的指令,具体为:测试主机根据预设地址、预设长度和预设读操作符组织读取模拟器中运行结果的指令;
步骤112:测试主机接收模拟器返回的运行结果,判断运行结果是否与预设结果一致,是则生成并保存成功的测试记录,否则生成并保存失败的测试记录。
具体地,测试主机根据接收模拟器返回的运行结果,具体为:测试主机接收模拟器返回的响应数据,解析响应数据获取运行结果。
进一步具体地,测试主机解析响应数据获取运行结果具体包括:
步骤a1:测试主机从响应数据中获取响应信息;
步骤a2:测试主机判断获取的响应信息中是否包括预设读操作符,是则执行步骤a3,否则获取响应数据中的下一条响应信息,继续判断;
步骤a3:测试主机解析获取的响应信息得到PC指针,判断得到的PC指针是否为预设的PC指针,是则解析响应信息得到运行结果,否则生成异常信息;具体地,步骤a3具体为:测试主机解析获取的响应信息得到地址和数据长度,判断得到的地址是否为预设地址、判断数据长度是否为预设长度,是则解析响应信息得到运行结果,否则生成异常信息;
相应地,步骤112中,判断运行结果是否与预设结果一致,具体为:测试主机判断得到的PC指针为预设的PC指针时,判断得到的运行结果是否与预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;测试主机判断得到的PC指针不为预设的PC指针时,根据生成的异常信息生成失败的测试记录。
可选地,上述步骤104之后、上述步骤105之前,还包括:
步骤S01:测试主机根据预设的单步运行的起始位置参数组织单步设置断点的请求,向模拟器发送单步设置断点的请求,接收模拟器返回的完成设置断点的信息;
具体地,预设的单步运行的起始位置参数具体为:预设的单步运行的起始位置的PC指针。
步骤S02:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应;
具体地,测试主机向模拟器发送运行与预设的应用程序安装包对应的应用程序的APDU指令。
步骤S03:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
具体地,测试主机向模拟器发送获取运行状态的请求,具体为:测试主机向模拟器发送获取运行状态的APDU指令。
步骤S04:测试主机判断接收的运行状态是否为暂停,是则执行步骤S05,否则返回步骤S03;
步骤S05:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
具体地,测试主机根据预设步数的参数向模拟器发送单步运行的请求,具体为:测试主机根据预设步数的参数向模拟器发送运行与预设的应用程序安装包对应的应用程序的APDU指令。
步骤S06:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,执行步骤105。
具体地,测试主机根据预设参数向模拟器发送修改参数的请求,具体为:测试主机根据预设参数向模拟器发送修改与预设的应用程序安装包对应的应用程序的参数的APDU指令。
本实施例中,测试主机需要测试修改参数之后的预设的运行位置参数所对应的位置的运行结果时,测试主机自动执行上述步骤S01-步骤S06,以及自动执行后续步骤105-步骤112的过程,无需人工参与,提高工作效率、提高测试的便捷性。
可选地,上述步骤S04中测试主机判断接收的运行状态为暂停时,执行步骤S05之前,还包括:
步骤N1:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
具体地,测试主机接收到模拟器返回的当前运行位置信息具体为模拟器当前PC指针;
步骤N2:测试主机判断接收的当前运行位置信息是否与预设的单步运行的起始位置参数一致,是则执行步骤S05,否则返回步骤S02。例如,测试主机判断接收的当前PC指针是否与预设的单步运行的起始位置的PC指针一致,是则执行步骤S05,否则返回步骤S02。
可选地,上述步骤112之后,还包括:测试主机还具有预设的PC指针数据时,获取下一个预设的单步运行的起始位置,执行步骤S01;测试主机还具有预设的运行位置参数时,获取下一个预设的运行位置参数,执行步骤105。
可选地,上述步骤112之后,测试主机还具有预设步数的参数、预设的运行位置参数时,还包括:
步骤C01:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
具体地,测试主机根据预设步数的参数向模拟器发送单步运行的请求,具体为:测试主机根据预设步数的参数向模拟器发送运行与预设的安装包对应的应用程序的APDU指令。
步骤C02:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,获取下一个预设的运行位置参数,执行步骤S1。
具体地,上述测试主机根据预设参数向模拟器发送修改参数的请求,具体为:测试主机根据预设数据参数、预设地址参数组织修改参数的请求,将修改参数的请求发送给所述模拟器。
进一步具体地,上述修改参数请求中还包括预设写操作符;相应地,上述测试主机接收模拟器返回的完成修改参数的信息,具体包括:
步骤L1:测试主机接收模拟器返回的响应数据,从响应数据获取响应信息;
步骤L2:测试主机判断获取的响应信息中是否包括预设写操作符,是则执行步骤L3,否则获取响应数据中的下一条响应信息,继续判断;
步骤L3:测试主机判断响应信息中是否包括修改成功的信息,是则修改参数成功;否则,修改参数失败,生成修改参数失败的信息,结束流程。
相应地,上述步骤112中还包括:测试主机根据修改参数失败的信息生成并保存修改参数失败的记录。
实施例4
本实施例提供一种嵌入式开发的自动化测试方法,如图4所示,测试主机执行的步骤包括:
步骤H1:测试主机连接模拟器,启动模拟器,连接模拟器中的仿真器。具体地,测试主机启动模拟器,连接模拟器中的仿真器具体包括:
步骤01:测试主机根据预设模拟器的地址组织启动指令,并向模拟器发送启动指令;
步骤02:测试主机接收到模拟器启动成功的信息,根据预设的仿真器地址向模拟器发送连接仿真器的请求。
本实施例中,模拟器中包括仿真器和虚拟机,测试主机与仿真器建立连接之后,仿真器与虚拟机建立连接。
例如,虚拟机为虚拟卡片时,相应地,仿真器为虚拟读卡器。
进一步地,步骤H1中,测试主机连接模拟器之后、启动模拟器之前,还包括:测试主机创建调试类,创建日志类。
步骤H2:测试主机接收到来自模拟器的启动成功信息,向模拟器发送清除断点的请求,接收模拟器返回的完成清除断点的信息。
步骤H3:测试主机根据多个预设的运行位置参数组织设置多个断点的请求,将设置多个断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息。
例如,多个预设的运行位置参数具体为多个预设的PC指针数据。
步骤H4:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应。
步骤H5:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态。
步骤H6:测试主机判断接收的运行状态是否为暂停,是则执行步骤H7,否则返回步骤H5。
步骤H7:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
例如,当前运行位置信息具体为模拟器的当前PC指针信息。
步骤H8:测试主机判断接收的当前运行位置信息是否与预设的运行位置参数一致,是则执行步骤H9,否则返回步骤H4。
例如,测试主机判断接收的当前PC指针信息是否与预设的PC指针数据一致,是则执行步骤H9,否则返回步骤H4。
具体地,步骤H8具体为:测试主机判断接收的当前运行位置信息是否与当前预设的运行位置参数一致,是则执行步骤H9,否则返回步骤H4;
或者,步骤H8具体为:测试主机判断接收的当前运行位置信息是否与其中一个预设的运行位置参数一致,是则执行步骤H9,否则返回步骤H4。
步骤H9:测试主机根据当前预设的运行位置参数读取模拟器中运行结果。
例如,当前预设的运行位置参数具体为当前预设的PC指针数据。
本实施例中,测试主机接收模拟器返回的完成设置断点的信息之后、第一次读取模拟器中运行结果之前,还包括:测试主机获取第一个预设的运行位置参数,将第一个预设的运行位置参数作为当前预设的运行位置参数。
步骤H10:测试主机根据读取的运行结果生成并保存测试记录,判断是否还有预设的运行位置参数,是则获取下一个预设的运行位置参数,将下一个预设的运行位置参数作为当前预设的运行位置参数,返回步骤H4;否则完成测试。
具体地,步骤H10中,测试主机根据读取的运行结果生成并保存测试记录,具体为:测试主机判断读取的运行结果是否与预设结果一致,是则生成并保存成功的测试记录;否则生成并保存失败的测试记录。
具体地,上述当前预设的运行位置参数包括预设地址和预设长度,相应地,上述步骤H9,具体包括:
步骤H91:测试主机根据预设地址、预设长度和预设读操作符组织读取运行结果的请求,并将读取运行结果的请求发送给模拟器;
步骤H92:测试主机接收所述模拟器返回的所述运行结果。
具体地,步骤H92具体为:测试主机接收模拟器返回的响应数据,解析响应数据获取运行结果。
进一步具体地,测试主机解析响应数据获取运行结果具体包括:
步骤a1:测试主机从响应数据中获取响应信息;
步骤a2:测试主机判断获取的响应信息中是否包括预设读操作符,是则执行步骤a3,否则获取响应数据中的下一条响应信息,继续判断;
步骤a3:测试主机解析获取的响应信息得到地址,判断得到的地址是否为预设地址,是则解析响应信息得到运行结果,否则生成异常信息;
步骤H10中,测试主机根据读取的运行结果生成并保存测试记录,具体为:测试主机判断得到的地址为预设地址时,判断得到的运行结果是否与预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;测试主机判断得到的地址不为预设地址时,根据生成的异常信息生成失败的测试记录。
可选地,上述步骤H3之前,还包括:测试主机根据预设的安装包文件组织安装应用程序的请求,向模拟器发送安装应用程序的请求,接收到模拟器返回的完成安装应用程序的信息;例如,安装应用程序的请求具体为安装应用程序的APDU指令;
相应地,上述测试主机向模拟器发送运行请求,接收模拟器返回的成功响应,具体为:测试主机向模拟器发送运行与安装包文件对应的应用程序的请求,接收模拟器返回的运行应用程序的信息。
进一步地,上述安装应用程序的请求中包括预设的安装包文件的标识;相应地,上述运行与预设的安装包文件对应的应用程序的请求中包括预设的安装包文件的标识。例如,当安装应用程序的请求为安装应用程序的APDU指令时,则安装应用程序的APDU指令中包括预设的安装包文件的标识。
可选地,当预设的运行位置参数为预设的单步运行的起始位置参数时,步骤H3之后、步骤H4之前,还包括:
步骤C01:测试主机向模拟器发送运行请求,接收模拟器返回的成功响应;
具体地,步骤C01中测试主机向模拟器发送运行请求,具体为:测试主机向模拟器发送运行与安装包文件对应的应用程序的APDU指令。
步骤C02:测试主机向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
步骤C03:测试主机判断接收的运行状态是否为暂停,是则执行步骤C04,否则返回步骤C02;
步骤C04:测试主机根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
具体地,步骤C04中测试主机根据预设步数的参数向模拟器发送单步运行的请求,具体为:测试主机根据预设步数的参数向模拟器发送单步运行与安装包文件对应的应用程序的APDU指令。
步骤C05:测试主机根据预设参数向模拟器发送修改参数的请求,接收模拟器返回的完成修改参数的信息,执行步骤H4。
本实施例中,测试主机需要测试修改参数之后的预设的运行位置参数所对应的位置的运行结果时,测试主机自动执行上述步骤C01-步骤C05,以及自动执行后续步骤H4-步骤H10的过程,无需人工参与,提高工作效率、提高测试的便捷性。
进一步地,步骤C03中接收的运行状态为暂停时,执行步骤C04之前,还包括:
步骤M1:测试主机向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
例如,当前运行位置信息具体为模拟器的当前PC指针信息。
步骤M2:测试主机判断接收的当前运行位置信息是否与预设的单步运行的起始位置参数一致,是则执行步骤C04,否则返回步骤C01。例如,预设的单步运行的起始位置参数具体为预设的单步运行的起始位置的PC指针数据,步骤M2具体为:测试主机判断接收的当前PC指针信息是否与预设的单步运行的起始位置的PC指针数据一致,是则执行步骤C04,否则返回步骤C01。
具体地,测试主机根据预设参数向模拟器发送修改参数的请求,具体为:测试主机根据预设数据参数、预设地址参数组织修改参数的请求,将修改参数的请求发送给模拟器。
进一步具体地,上述修改参数请求中还包括预设写操作符;
相应地,上述测试主机接收模拟器返回的完成修改参数的信息,具体包括:
步骤L1:测试主机接收模拟器返回的响应数据,从响应数据获取响应信息;
步骤L2:测试主机判断获取的响应信息中是否包括预设写操作符,是则执行步骤L3,否则获取响应数据中的下一条响应信息,继续判断;
步骤L3:测试主机判断响应信息中是否包括修改成功的信息,是则修改参数成功;否则,修改参数失败,生成修改参数失败的信息,结束流程。
步骤S6中还包括:测试主机根据修改参数失败的信息生成并保存修改参数失败的记录。
实施例5
本实施例提供一种嵌入式开发的测试主机,如图5所示,包括:
预设保存模块501,用于保存预设的运行位置参数;
断点设置模块502,用于根据预设保存模块501保存的预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息;
运行请求模块503,用于断点设置模块502接收模拟器返回的完成设置断点的信息之后,向模拟器发送运行请求,接收模拟器返回的成功响应;
获取运行状态模块504,用于运行请求模块503接收模拟器返回的成功响应之后,向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
运行状态判断模块505,用于判断获取运行状态模块504接收的模拟器返回的运行状态是否为暂停;
获取运行状态模块504,还用于运行状态判断模块505判断结果为否时,向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
读取模块506,用于运行状态判断模块505判断结果为是时,根据预设保存模块501保存的预设的运行位置参数读取模拟器中运行结果;
生成模块507,用于根据读取模块506读取的运行结果生成测试记录;
保存模块508,用于保存生成模块507生成的测试记录。
可选地,上述测试主机还包括:
获取当前位置请求模块,用于运行状态判断模块505判断结果为是时,向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
判断模块,用于判断获取当前位置请求模块接收的当前运行位置信息是否与预设保存模块501保存的预设的运行位置参数一致;
相应地,上述读取模块506,具体用于判断模块判断结果为是时,根据预设保存模块501保存的预设的运行位置参数读取模拟器中运行结果;
上述运行请求模块503,还用于判断模块判断结果为否时,向模拟器发送运行请求,接收模拟器返回的成功响应。
进一步地,上述预设保存模块501,还用于保存预设结果;
相应地,上述生成模块507,具体用于判断读取模块506读取的运行结果是否与预设保存模块501保存的预设结果一致,是则生成成功的测试记录;否则生成失败的测试记录;
上述保存模块508,具体用于当生成模块507生成成功的测试记录时,保存成功的测试记录;当生成模块507生成失败的测试记录时,保存失败的测试记录。
可选地,上述测试主机还包括:
清除断点模块,用于向模拟器发送清除断点的请求,接收模拟器返回的完成清除断点的信息;
相应地,断点设置模块502,具体用于清除断点模块接收模拟器返回的完成清除断点的信息之后,根据预设保存模块501保存的预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息。
可选地,上述预设保存模块501保存的预设的运行位置参数包括预设地址和预设长度;
上述预设保存模块501,还用于保存预设读操作符;
相应地,上述读取模块506包括组织发送子模块和接收子模块;
组织发送子模块,用于根据预设保存模块501保存的预设地址、预设长度和预设读操作符组织读取运行结果的请求,并将读取运行结果的请求发送给模拟器;
接收子模块,用于组织发送子模块将读取运行结果的请求发送给模拟器之后,接收模拟器返回的运行结果。
具体地,接收子模块包括接收单元和解析获取单元;
接收单元,用于组织发送子模块将读取运行结果的请求发送给模拟器之后,接收模拟器返回的响应数据;
解析获取单元,用于解析接收单元接收的响应数据获取运行结果。
进一步地,上述预设保存模块501,还用于保存预设结果;
上述解析获取单元包括获取子单元、第一判断子单元、第一解析子单元、第二判断子单元、第二解析子单元和生成子单元;
获取子单元,用于从接收单元接收的响应数据中获取响应信息;
第一判断子单元,用于判断获取子单元获取的响应信息中是否包括预设读操作符;
获取子单元,还用于第一判断子单元判断结果为否时,获取响应数据中的下一条响应信息;
第一解析子单元,用于第一判断子单元判断结果为是时,解析获取子单元获取的响应信息得到地址;
第二判断子单元,用于判断第一解析子单元得到的地址是否为预设保存模块501保存的预设地址;
第二解析子单元,用于第二判断子单元判断结果为是时,解析获取子单元获取的响应信息得到运行结果;
生成子单元,用于第二判断子单元判断结果为否时,生成异常信息;
相应地,上述生成模块507,具体用于判断第二解析子单元得到的运行结果是否与预设保存模块501保存的预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;用于根据生成子单元生成的异常信息生成失败的测试记录。
可选地,上述测试主机还包括安装模块;
上述预设保存模块501,还用于保存预设的安装包文件;
安装模块,用于根据预设保存模块501保存的预设的安装包文件组织安装应用程序的请求,向模拟器发送安装应用程序的请求,接收到模拟器返回的完成安装应用程序的信息;
上述断点设置模块502,具体用于安装模块接收到模拟器返回的完成安装应用程序的信息之后,根据预设保存模块501保存的预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息;
上述运行请求模块503,具体用于断点设置模块502接收模拟器返回的完成设置断点的信息之后,向模拟器发送运行与预设的安装包文件对应的应用程序的请求,接收模拟器返回的运行应用程序的信息。
本实施例中,上述预设保存模块501,还用于保存预设的安装包文件的标识;
相应地,上述安装模块组织的与预设的安装包文件对应的安装应用程序的请求中包括预设的安装包文件的标识;
上述运行请求模块503向模拟器发送运行与预设的安装包文件对应的应用程序的请求中包括预设的安装包文件的标识。
可选地,上述测试主机还包括单步断点设置模块、单步运行请求模块、修改参数发送模块和完成修改参数接收模块;
上述预设保存模块501,还用于保存预设的单步运行的起始位置参数和预设步数的参数和预设参数;
单步断点设置模块,用于根据预设保存模块501保存的预设的单步运行的起始位置参数组织单步设置断点的请求,向模拟器发送所述单步设置断点的请求,接收模拟器返回的完成单步设置断点的信息;
运行请求模块503,还用于单步断点设置模块接收模拟器返回的完成单步设置断点的信息之后,向模拟器发送运行请求,接收模拟器返回的成功响应;
上述获取运行状态模块504,还用于单步断点设置模块接收模拟器返回的完成单步设置断点的信息,并且运行请求模块503接收模拟器返回的成功响应之后,向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
上述运行状态判断模块505,还用于单步断点设置模块接收模拟器返回的完成单步设置断点的信息,并且获取运行状态模块504接收模拟器返回的运行状态之后,判断获取运行状态模块504接收的运行状态是否为暂停;
单步运行请求模块,用于运行状态判断模块505判断结果为是时,根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
修改参数发送模块,用于单步运行请求模块接收到模拟器返回的成功响应时,根据预设保存模块501保存的预设参数向模拟器发送修改参数的请求;
完成修改参数接收模块,用于接收模拟器返回的完成修改参数的信息;
断点设置模块502,还用于完成修改参数接收模块接收到模拟器返回的完成修改参数的信息时,根据预设保存模块501保存的预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息。
进一步可选地,上述测试主机还包括:
获取当前位置请求模块,用于运行状态判断模块505判断获取运行状态模块504接收的运行状态为暂停时,向模拟器发送获取当前运行位置的请求,接收到模拟器返回的当前运行位置信息;
判断模块,用于判断获取当前位置请求模块接收的当前运行位置信息是否与预设保存模块501保存的预设的单步运行的起始位置参数一致;
相应地,上述单步运行请求模块,具体用于判断模块判断结果为是时,根据预设保存模块501保存的预设参数向模拟器发送修改参数的请求,接收所述模拟器返回的成功响应;
上述运行请求模块503,还用于判断模块判断结果为否时,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应。
进一步可选地,上述测试主机还包括:单步起始位置获取模块和运行位置获取模块;
单步起始位置获取模块,用于保存模块508保存生成模块507生成的测试记录之后,预设保存模块501中还具有预设的单步运行的起始位置参数时,获取预设保存模块501中的下一个预设的单步运行的起始位置参数;
上述单步断点设置模块,还用于根据单步起始位置获取模块获取的预设的单步运行的起始位置参数组织单步设置断点的请求,接收模拟器返回的完成单步设置断点的信息;
运行位置获取模块,用于保存模块508保存生成模块507生成的测试记录之后,预设保存模块501中还具有预设的运行位置参数时,获取预设保存模块501中的下一个预设的运行位置参数;
上述断点设置模块502,还用于根据运行位置获取模块获取的预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息。
可选地,上述测试主机还包括单步运行请求模块、修改参数发送模块、完成修改参数接收模块、运行位置获取模块;
上述预设保存模块501,还用于保存预设步数的参数和预设参数;
单步运行请求模块,用于保存模块508保存生成模块507生成的测试记录之后,预设保存模块501中还具有预设步数的参数、预设的运行位置参数时,根据预设保存模块501保存的预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
修改参数发送模块,用于单步运行请求模块接收到模拟器返回的成功响应时,根据预设保存模块501保存的预设参数向模拟器发送修改参数的请求;
完成修改参数接收模块,用于修改参数发送模块向模拟器发送修改参数的请求之后,接收模拟器返回的完成修改参数的信息;
运行位置获取模块,用于完成修改参数接收模块接收模拟器返回的完成修改参数的信息之后,预设保存模块501中还具有预设的运行位置参数时,获取预设保存模块501中的下一个预设的运行位置参数;
上述断点设置模块502,还用于根据运行位置获取模块获取的预设的运行位置参数组织设置断点的请求,并将设置断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息。
可选地,上述测试主机还包括运行位置参数获取模块;
上述预设保存模块501,具体用于保存多个预设的运行位置参数;
上述断点设置模块502,具体用于根据预设保存模块501保存的多个预设的运行位置参数组织设置多个断点的请求,将设置多个断点的请求发送给模拟器,接收模拟器返回的完成设置断点的信息;
运行位置参数获取模块,用于断点设置模块502接收模拟器返回的完成设置断点的信息之后、读取模块506第一次读取模拟器中运行结果之前,获取预设保存模块501中保存的第一个预设的运行位置参数,将第一个预设的运行位置参数作为当前预设的运行位置参数;
上述运行请求模块503,还用于保存模块508保存生成模块507生成的测试记录之后,预设保存模块501中还具有预设的运行位置参数时,向模拟器发送运行请求,接收模拟器返回的成功响应;
运行位置参数获取模块,还用于保存模块508保存生成模块507生成的测试记录之后,预设保存模块501中还具有预设的运行位置参数时,获取预设保存模块501中的下一个预设的运行位置参数,将下一个预设的运行位置参数作为当前预设的位置参数;
上述读取模块506,具体用于运行状态判断模块505判断结果为是时,根据运行位置参数获取模块获取的当前预设的运行位置参数读取模拟器中运行结果。
进一步地,上述测试主机在包括运行位置参数读取模块506的基础上还包括;单步运行请求模块、修改参数发送模块、完成修改参数接收模块、运行位置获取模块;
上述预设保存模块501,还用于预设位置参数为预设的单步运行的起始位置参数时,保存预设步数的参数和预设参数;
上述运行请求模块503,还用于预设的运行位置参数为预设的单步运行的起始位置参数时,向模拟器发送运行请求,接收模拟器返回的成功响应;
上述获取运行状态模块504,还用于预设的运行位置参数为预设的单步运行的起始位置参数时,并且运行请求模块503接收模拟器返回的成功响应之后,向模拟器发送获取运行状态的请求,接收模拟器返回的运行状态;
上述运行状态判断模块505,还用于预设的运行位置参数为预设的单步运行的起始位置参数时,并且获取运行状态模块504接收模拟器返回的运行状态之后,判断获取运行状态模块504接收的运行状态是否为暂停;
单步运行请求模块,用于运行状态判断模块505判断结果为是时,根据预设步数的参数向模拟器发送单步运行的请求,接收模拟器返回的成功响应;
修改参数发送模块,用于单步运行请求模块接收到模拟器返回的成功响应时,根据预设保存模块501保存的预设参数向模拟器发送修改参数的请求;
完成修改参数接收模块,用于修改参数发送模块根据预设保存模块501保存的预设参数向模拟器发送修改参数的请求之后,接收模拟器返回的完成修改参数的信息;
上述运行请求模块503,还用于完成修改参数接收模块接收到模拟器返回的完成修改参数的信息时,向模拟器发送运行请求,接收模拟器返回的成功响应。
具体地,本实施例中上述预设保存模块501保存的预设参数包括预设数据参数和预设地址参数;
相应地,上述修改参数发送模块,具体用于根据预设保存模块501保存的预设数据参数、预设地址参数组织修改参数的请求,将修改参数的请求发送给模拟器。
进一步具体地,上述完成修改参数接收模块包括接收获取单元、第一判断单元、第二判断单元、生成单元、第三判断单元;
上述预设保存模块501还用于保存预设写操作符;上述修改参数发送模块组织的修改参数请求中还包括预设写操作符;
接收获取单元,用于接收模拟器返回的响应数据,从响应数据获取响应信息;
第一判断单元,用于判断接收获取单元获取的响应信息中是否包括预设写操作符;
上述接收获取单元,还用于第一判断单元判断结果为否时,获取响应数据中的下一条响应信息;
第二判断单元,用于第一判断单元判断结果为是时,判断所述接收获取单元获取的所述响应信息中是否包括完成修改成功的信息,是则修改参数成功,否则修改参数失败;
生成单元,用于第二判断单元判断结果为否时,生成修改参数失败的信息;
上述生成模块507,还用于根据生成单元生成的修改参数失败的信息生成修改参数失败的记录;
上述保存模块508,还用于保存生成模块507生成的异常记录和参数记录。
本发明的有益效果是:在对嵌入式开发的产品进行测试时,可以测试到深度和细致地方的运行结果,并根据运行结果自动生成测试的测试记录,避免给产品带来不必要的隐患;无需人工手动测试,在测试工序节省劳动力,尤其需要测试多个预设的运行位置参数所对应的运行结果时,在很大程度上节省劳动力。与此同时,本发明提供的方案可以自动生成并保存测试记录,因此具有很好的重现性。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (34)
1.一种嵌入式开发的自动化测试方法,其特征在于,包括以下步骤:
步骤S1:测试主机根据预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息;
步骤S2:所述测试主机向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
步骤S3:所述测试主机向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
步骤S4:所述测试主机判断接收的运行状态是否为暂停,是则执行步骤S5,否则返回步骤S3;
步骤S5:所述测试主机根据所述预设的运行位置参数读取所述模拟器中运行结果;
步骤S6:所述测试主机根据读取的所述运行结果生成并保存测试记录。
2.根据权利要求1所述的方法,其特征在于,所述测试主机判断接收的运行状态是为暂停时,执行所述步骤S5之前还包括:
步骤M1:所述测试主机向所述模拟器发送获取当前运行位置的请求,接收到所述模拟器返回的当前运行位置信息;
步骤M2:所述测试主机判断接收的所述当前运行位置信息是否与所述预设的运行位置参数一致,是则执行步骤S5,否则返回步骤S2。
3.根据权利要求1或2所述的方法,其特征在于,所述步骤S6具体为:所述测试主机判断读取的所述运行结果是否与预设结果一致,是则生成并保存成功的测试记录;否则生成并保存失败的测试记录。
4.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:
步骤S0:所述测试主机向所述模拟器发送清除断点的请求,接收所述模拟器返回的完成清除断点的信息,执行步骤S1。
5.根据权利要求1所述的方法,其特征在于,所述预设的运行位置参数包括预设地址和预设长度,所述步骤S5,具体包括:
步骤S51:所述测试主机根据预设地址、预设长度和预设读操作符组织读取运行结果的请求,并将所述读取运行结果的请求发送给模拟器;
步骤S52:所述测试主机接收所述模拟器返回的所述运行结果。
6.根据权利要求5所述的方法,其特征在于,所述步骤S52具体为:所述测试主机接收所述模拟器返回的响应数据,解析所述响应数据获取所述运行结果。
7.根据权利要求6所述的方法,其特征在于,所述测试主机解析所述响应数据获取所述运行结果具体包括:
步骤a1:所述测试主机从所述响应数据中获取响应信息;
步骤a2:所述测试主机判断获取的所述响应信息中是否包括所述预设读操作符,是则执行步骤a3,否则获取所述响应数据中的下一条响应信息,继续判断;
步骤a3:所述测试主机解析获取的所述响应信息得到地址,判断得到的所述地址是否为所述预设地址,是则解析所述响应信息得到所述运行结果,否则生成异常信息;
所述步骤S6具体为:所述测试主机判断得到的所述地址为所述预设地址时,判断得到的所述运行结果是否与预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;所述测试主机判断得到的所述地址不为所述预设地址时,根据生成的所述异常信息生成失败的测试记录。
8.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:所述测试主机根据预设的安装包文件组织安装应用程序的请求,向所述模拟器发送安装应用程序的请求,接收到所述模拟器返回的完成安装应用程序的信息,执行步骤S1;
所述步骤S2具体为:所述测试主机向所述模拟器发送运行与所述安装包文件对应的应用程序的请求,接收所述模拟器返回的运行所述应用程序的信息。
9.根据权利要求8所述的方法,其特征在于,所述安装应用程序的请求中包括所述预设的安装包文件的标识;
所述运行与所述预设的安装包文件对应的应用程序的请求中包括所述预设的安装包文件的标识。
10.根据权利要求1所述的方法,其特征在于,所述步骤S1之前,还包括:
步骤S01:所述测试主机根据预设的单步运行的起始位置参数组织单步设置断点的请求,向所述模拟器发送所述单步设置断点的请求,接收所述模拟器返回的完成设置断点的信息;
步骤S02:所述测试主机向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
步骤S03:所述测试主机向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
步骤S04:所述测试主机判断接收的运行状态是否为暂停,是则执行步骤S05,否则返回步骤S03;
步骤S05:所述测试主机根据预设步数的参数向所述模拟器发送单步运行的请求,接收所述模拟器返回的成功响应;
步骤S06:所述测试主机根据预设参数向所述模拟器发送修改参数的请求,接收所述模拟器返回的完成修改参数的信息,执行所述步骤S1。
11.根据权利要求10所述的方法,其特征在于,所述测试主机判断接收的运行状态为暂停时,执行所述步骤S05之前,还包括:
步骤N1:所述测试主机向所述模拟器发送获取当前运行位置的请求,接收到所述模拟器返回的当前运行位置信息;
步骤N2:所述测试主机判断接收的所述当前运行位置信息是否与所述预设的单步运行的起始位置参数一致,是则执行步骤S05,否则返回步骤S02。
12.根据权利要求10所述的方法,其特征在于,所述步骤S6之后,还包括:所述测试主机还具有预设的单步运行的起始位置参数时,获取下一个预设的单步运行的起始位置,执行步骤S01;所述测试主机还具有预设的运行位置参数时,获取下一个预设的运行位置参数,执行步骤S1。
13.根据权利要求1所述的方法,其特征在于,所述步骤S6之后,所述测试主机还具有预设步数的参数、预设的运行位置参数时,还包括:
步骤C01:所述测试主机根据预设步数的参数向所述模拟器发送单步运行的请求,接收所述模拟器返回的成功响应;
步骤C02:所述测试主机根据预设参数向所述模拟器发送修改参数的请求,接收所述模拟器返回的完成修改参数的信息,获取下一个预设的运行位置参数,执行所述步骤S1。
14.根据权利要求1所述的方法,其特征在于,所述步骤S1具体为:测试主机根据多个预设的运行位置参数组织设置多个断点的请求,将所述设置多个断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息;
所述测试主机接收所述模拟器返回的完成设置断点的信息之后、第一次读取所述模拟器中运行结果之前,还包括:所述测试主机获取第一个预设的运行位置参数,将所述第一个预设的运行位置参数作为当前预设的运行位置参数;
所述步骤S6之后,还包括:所述测试主机中没有预设的运行位置参数时,完成测试;所述测试主机中还有预设的运行位置参数时,获取下一个预设的运行位置参数,将下一个预设的运行位置参数作为当前预设的运行位置参数,执行步骤S2;
所述步骤S5具体为:所述测试主机根据当前预设的运行位置参数读取所述模拟器中运行结果。
15.根据权利要求14所述的方法,其特征在于,所述预设的运行位置参数为预设的单步运行的起始位置参数时,所述步骤S2之前,还包括:
步骤C01:所述测试主机向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
步骤C02:所述测试主机向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
步骤C03:所述测试主机判断接收的运行状态是否为暂停,是则执行步骤C04,否则返回步骤C02;
步骤C04:所述测试主机根据预设步数的参数向所述模拟器发送单步运行的请求,接收所述模拟器返回的成功响应;
步骤C05:所述测试主机根据预设参数向所述模拟器发送修改参数的请求,接收所述模拟器返回的完成修改参数的信息,执行所述步骤S2。
16.根据权利要求10、13、15任意一项权利要求所述的方法,其特征在于,所述测试主机根据预设参数向所述模拟器发送修改参数的请求,具体为:所述测试主机根据预设数据参数、预设地址参数组织修改参数的请求,将所述修改参数的请求发送给所述模拟器。
17.根据权利要求16所述的方法,其特征在于,所述修改参数请求中还包括预设写操作符;
所述测试主机接收所述模拟器返回的完成修改参数的信息,具体包括:
步骤L1:所述测试主机接收所述模拟器返回的响应数据,从所述响应数据获取响应信息;
步骤L2:所述测试主机判断获取的所述响应信息中是否包括所述预设写操作符,是则执行步骤L3,否则获取所述响应数据中的下一条响应信息,继续判断;
步骤L3:所述测试主机判断所述响应信息中是否包括修改成功的信息,是则修改参数成功;否则,修改参数失败,生成修改参数失败的信息,结束流程。
所述步骤S6中还包括:所述测试主机根据所述修改参数失败的信息生成并保存修改参数失败的记录。
18.一种嵌入式开发的测试主机,其特征在于,包括:
预设保存模块,用于保存预设的运行位置参数;
断点设置模块,用于根据所述预设保存模块保存的预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息;
运行请求模块,用于所述断点设置模块接收所述模拟器返回的完成设置断点的信息之后,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
获取运行状态模块,用于所述运行请求模块接收所述模拟器返回的成功响应之后,向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
运行状态判断模块,用于判断所述获取运行状态模块接收的所述模拟器返回的运行状态是否为暂停;
所述获取运行状态模块,还用于所述运行状态判断模块判断结果为否时,向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
读取模块,用于所述运行状态判断模块判断结果为是时,根据所述预设保存模块保存的预设的运行位置参数读取所述模拟器中运行结果;
生成模块,用于根据所述读取模块读取的所述运行结果生成测试记录;
保存模块,用于保存所述生成模块生成的所述测试记录。
19.根据权利要求18所述的测试主机,其特征在于,还包括:
获取当前位置请求模块,用于所述运行状态判断模块判断结果为是时,向所述模拟器发送获取当前运行位置的请求,接收到所述模拟器返回的当前运行位置信息;
判断模块,用于判断所述获取当前位置请求模块接收的所述当前运行位置信息是否与所述预设保存模块保存的所述预设的运行位置参数一致;
所述读取模块,具体用于所述判断模块判断结果为是时,根据所述预设保存模块保存的预设的运行位置参数读取所述模拟器中运行结果;
所述运行请求模块,还用于所述判断模块判断结果为否时,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应。
20.根据权利要求18或19所述的测试主机,其特征在于,所述预设保存模块,还用于保存预设结果;
所述生成模块,具体用于判断所述读取模块读取的所述运行结果是否与所述预设保存模块保存的所述预设结果一致,是则生成成功的测试记录;否则生成失败的测试记录;
所述保存模块,具体用于当所述生成模块生成成功的测试记录时,保存所述成功的测试记录;当所述生成模块生成失败的测试记录时,保存所述失败的测试记录。
21.根据权利要求18所述的测试主机,其特征在于,还包括:
清除断点模块,用于向所述模拟器发送清除断点的请求,接收所述模拟器返回的完成清除断点的信息;
所述断点设置模块,具体用于所述清除断点模块接收所述模拟器返回的完成清除断点的信息之后,根据所述预设保存模块保存的预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息。
22.根据权利要求18所述的测试主机,其特征在于,所述预设保存模块保存的所述预设的运行位置参数包括预设地址和预设长度;
所述预设保存模块,还用于保存预设读操作符;
所述读取模块包括组织发送子模块和接收子模块;
所述组织发送子模块,用于根据所述预设保存模块保存的所述预设地址、所述预设长度和所述预设读操作符组织读取运行结果的请求,并将所述读取运行结果的请求发送给模拟器;
所述接收子模块,用于所述组织发送子模块将所述读取运行结果的请求发送给模拟器之后,接收所述模拟器返回的所述运行结果。
23.根据权利要求22所述的测试主机,其特征在于,所述接收子模块包括接收单元和解析获取单元;
所述接收单元,用于所述组织发送子模块将所述读取运行结果的请求发送给模拟器之后,接收所述模拟器返回的响应数据;
所述解析获取单元,用于解析所述接收单元接收的所述响应数据获取所述运行结果。
24.根据权利要求23所述的测试主机,其特征在于,所述预设保存模块,还用于保存预设结果;
所述解析获取单元包括获取子单元、第一判断子单元、第一解析子单元、第二判断子单元、第二解析子单元和生成子单元;
所述获取子单元,用于从所述接收单元接收的所述响应数据中获取响应信息;
所述第一判断子单元,用于判断所述获取子单元获取的所述响应信息中是否包括所述预设读操作符;
所述获取子单元,还用于所述第一判断子单元判断结果为否时,获取所述响应数据中的下一条响应信息;
所述第一解析子单元,用于所述第一判断子单元判断结果为是时,解析所述获取子单元获取的所述响应信息得到地址;
所述第二判断子单元,用于判断所述第一解析子单元得到的地址是否为所述预设保存模块保存的所述预设地址;
所述第二解析子单元,用于所述第二判断子单元判断结果为是时,解析所述获取子单元获取的所述响应信息得到所述运行结果;
所述生成子单元,用于所述第二判断子单元判断结果为否时,生成异常信息;
所述生成模块,具体用于判断所述第二解析子单元得到的所述运行结果是否与所述预设保存模块保存的所述预设结果一致,是则生成成功的测试记录,否则生成失败的测试记录;用于根据所述生成子单元生成的所述异常信息生成失败的测试记录。
25.根据权利要求18所述的测试主机,其特征在于,还包括:安装模块;
所述预设保存模块,还用于保存预设的安装包文件;
所述安装模块,用于根据所述预设保存模块保存的所述预设的安装包文件组织安装应用程序的请求,向所述模拟器发送安装应用程序的请求,接收到所述模拟器返回的完成安装应用程序的信息;
所述断点设置模块,具体用于所述安装模块接收到所述模拟器返回的完成安装应用程序的信息之后,根据所述预设保存模块保存的预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息;
所述运行请求模块,具体用于所述断点设置模块接收所述模拟器返回的完成设置断点的信息之后,向所述模拟器发送运行与所述预设的安装包文件对应的应用程序的请求,接收所述模拟器返回的运行所述应用程序的信息。
26.根据权利要求25所述的测试主机,其特征在于,所述预设保存模块保存,还用于保存所述预设的安装包文件的标识;
所述安装模块组织的与所述预设的安装包文件对应的所述安装应用程序的请求中包括所述预设的安装包文件的标识;
所述运行请求模块向所述模拟器发送运行与所述预设的安装包文件对应的应用程序的请求中包括所述预设的安装包文件的标识。
27.根据权利要求18所述的测试主机,其特征在于,还包括单步断点设置模块、单步运行请求模块、修改参数发送模块和完成修改参数接收模块;
所述预设保存模块,还用于保存预设的单步运行的起始位置参数和预设步数的参数和预设参数;
所述单步断点设置模块,用于根据所述预设保存模块保存的预设的单步运行的起始位置参数组织单步设置断点的请求,向所述模拟器发送所述单步设置断点的请求,接收所述模拟器返回的完成单步设置断点的信息;
所述运行请求模块,还用于所述单步断点设置模块接收所述模拟器返回的完成单步设置断点的信息之后,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
所述获取运行状态模块,还用于所述单步断点设置模块接收所述模拟器返回的完成单步设置断点的信息,并且所述运行请求模块接收所述模拟器返回的成功响应之后,向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
所述运行状态判断模块,还用于所述单步断点设置模块接收所述模拟器返回的完成单步设置断点的信息,并且所述获取运行状态模块接收所述模拟器返回的运行状态之后,判断所述获取运行状态模块接收的所述运行状态是否为暂停;
所述单步运行请求模块,用于所述运行状态判断模块判断结果为是时,根据预设步数的参数向所述模拟器发送单步运行的请求,接收所述模拟器返回的成功响应;
所述修改参数发送模块,用于所述单步运行请求模块接收到所述模拟器返回的成功响应时,根据所述预设保存模块保存的所述预设参数向所述模拟器发送修改参数的请求;
所述完成修改参数接收模块,用于接收所述模拟器返回的完成修改参数的信息;
所述断点设置模块,还用于所述完成修改参数接收模块接收到所述模拟器返回的完成修改参数的信息时,根据所述预设保存模块保存的预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息。
28.根据权利要求27所述的测试主机,其特征在于,还包括:
获取当前位置请求模块,用于所述运行状态判断模块判断所述获取运行状态模块接收的所述运行状态为暂停时,向所述模拟器发送获取当前运行位置的请求,接收到所述模拟器返回的当前运行位置信息;
判断模块,用于判断获取当前位置请求模块所述接收的所述当前运行位置信息是否与所述预设保存模块保存的所述预设的单步运行的起始位置参数一致;
所述单步运行请求模块,具体用于所述判断模块判断结果为是时,根据所述预设保存模块保存的所述预设参数向所述模拟器发送修改参数的请求,接收所述模拟器返回的成功响应;
所述运行请求模块,还用于所述判断模块判断结果为否时,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应。
29.根据权利要求27所述的测试主机,其特征在于,还包括单步起始位置获取模块和运行位置获取模块;
所述单步起始位置获取模块,用于所述保存模块保存所述生成模块生成的所述测试记录之后,所述预设保存模块中还具有预设的单步运行的起始位置参数时,获取所述预设保存模块中的下一个预设的单步运行的起始位置参数;
所述单步断点设置模块,还用于根据所述单步起始位置获取模块获取的所述预设的单步运行的起始位置参数组织单步设置断点的请求,接收所述模拟器返回的完成单步设置断点的信息;
运行位置获取模块,用于所述保存模块保存所述生成模块生成的所述测试记录之后,所述预设保存模块中还具有预设的运行位置参数时,获取所述预设保存模块中的下一个预设的运行位置参数;
所述断点设置模块,还用于根据运行位置获取模块获取的所述预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息。
30.根据权利要求18所述的测试主机,其特征在于,还包括单步运行请求模块、修改参数发送模块、完成修改参数接收模块、运行位置获取模块;
所述预设保存模块,还用于保存预设步数的参数和预设参数;
所述单步运行请求模块,用于所述保存模块保存所述生成模块生成的所述测试记录之后,所述预设保存模块中还具有预设步数的参数、预设的运行位置参数时,根据所述预设保存模块保存的预设步数的参数向所述模拟器发送单步运行的请求,接收所述模拟器返回的成功响应;
所述修改参数发送模块,用于所述单步运行请求模块接收到所述模拟器返回的成功响应时,根据所述预设保存模块保存的预设参数向所述模拟器发送修改参数的请求;
所述完成修改参数接收模块,用于所述修改参数发送模块向所述模拟器发送修改参数的请求之后,接收所述模拟器返回的完成修改参数的信息;
所述运行位置获取模块,用于所述完成修改参数接收模块接收所述模拟器返回的完成修改参数的信息之后,所述预设保存模块中还具有预设的运行位置参数时,获取所述预设保存模块中的下一个预设的运行位置参数;
所述断点设置模块,还用于根据运行位置获取模块获取的所述预设的运行位置参数组织设置断点的请求,并将所述设置断点的请求发送给模拟器,接收所述模拟器返回的完成设置断点的信息。
31.根据权利要求18所述的测试主机,其特征在于,还包括运行位置参数获取模块;
所述预设保存模块,具体用于保存多个预设的运行位置参数;
所述断点设置模块,具体用于根据所述预设保存模块保存的多个预设的运行位置参数组织设置多个断点的请求,将所述设置多个断点的请求发送给所述模拟器,接收所述模拟器返回的完成设置断点的信息;
所述运行位置参数获取模块,用于所述断点设置模块接收所述模拟器返回的完成设置断点的信息之后、所述读取模块第一次读取所述模拟器中运行结果之前,获取所述预设保存模块中保存的第一个预设的运行位置参数,将所述第一个预设的运行位置参数作为当前预设的运行位置参数;
所述运行请求模块,还用于所述保存模块保存所述生成模块生成的所述测试记录之后,所述预设保存模块中还具有预设的运行位置参数时,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
所述运行位置参数获取模块,还用于所述保存模块保存所述生成模块生成的所述测试记录之后,所述预设保存模块中还具有预设的运行位置参数时,获取所述预设保存模块中的下一个预设的运行位置参数,将下一个预设的运行位置参数作为当前预设的位置参数;
所述读取模块,具体用于所述运行状态判断模块判断结果为是时,根据所述运行位置参数获取模块获取的当前预设的运行位置参数读取所述模拟器中运行结果。
32.根据权利要求31所述的测试主机,其特征在于,还包括单步运行请求模块、修改参数发送模块、完成修改参数接收模块、运行位置获取模块;
所述预设保存模块,还用于所述预设位置参数为预设的单步运行的起始位置参数时,保存预设步数的参数和预设参数;
所述运行请求模块,还用于所述预设的运行位置参数为预设的单步运行的起始位置参数时,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应;
所述获取运行状态模块,还用于所述预设的运行位置参数为预设的单步运行的起始位置参数时,并且所述运行请求模块接收所述模拟器返回的成功响应之后,向所述模拟器发送获取运行状态的请求,接收所述模拟器返回的运行状态;
所述运行状态判断模块,还用于所述预设的运行位置参数为预设的单步运行的起始位置参数时,并且所述获取运行状态模块接收所述模拟器返回的运行状态之后,判断所述获取运行状态模块接收的所述运行状态是否为暂停;
所述单步运行请求模块,用于所述运行状态判断模块判断结果为是时,根据预设步数的参数向所述模拟器发送单步运行的请求,接收所述模拟器返回的成功响应;
所述修改参数发送模块,用于所述单步运行请求模块接收到所述模拟器返回的成功响应时,根据所述预设保存模块保存的所述预设参数向所述模拟器发送修改参数的请求;
所述完成修改参数接收模块,用于所述修改参数发送模块根据所述预设保存模块保存的所述预设参数向所述模拟器发送修改参数的请求之后,接收所述模拟器返回的完成修改参数的信息;
所述运行请求模块,还用于所述完成修改参数接收模块接收到所述模拟器返回的完成修改参数的信息时,向所述模拟器发送运行请求,接收所述模拟器返回的成功响应。
33.根据权利要求27、30、32任意一项权利要求所述的测试主机,其特征在于,所述预设保存模块保存的所述预设参数包括预设数据参数和预设地址参数;
所述修改参数发送模块,具体用于根据所述预设保存模块保存的所述预设数据参数、所述预设地址参数组织修改参数的请求,将所述修改参数的请求发送给所述模拟器。
34.根据权利要求33所述的测试主机,其特征在于,所述完成修改参数接收模块包括接收获取单元、第一判断单元、第二判断单元、生成单元、第三判断单元;
所述预设保存模块还用于保存预设写操作符;所述修改参数发送模块组织的所述修改参数请求中还包括所述预设写操作符;
所述接收获取单元,用于接收所述模拟器返回的响应数据,从所述响应数据获取响应信息;
所述第一判断单元,用于判断所述接收获取单元获取的所述响应信息中是否包括预设写操作符;
所述接收获取单元,还用于所述第一判断单元判断结果为否时,获取所述响应数据中的下一条响应信息;
所述第二判断单元,用于所述第一判断单元判断结果为是时,判断所述接收获取单元获取的所述响应信息中是否包括完成修改成功的信息,是则修改参数成功,否则修改参数失败;
所述生成单元,用于所述第二判断单元判断结果为否时,生成修改参数失败的信息;
所述生成模块,还用于根据所述生成单元生成的修改参数失败的信息生成修改参数失败的记录;
所述保存模块,还用于保存所述生成模块生成的所述修改参数失败的记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710536721.8A CN107341107B (zh) | 2017-07-04 | 2017-07-04 | 一种嵌入式开发的自动化测试方法及测试主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710536721.8A CN107341107B (zh) | 2017-07-04 | 2017-07-04 | 一种嵌入式开发的自动化测试方法及测试主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107341107A true CN107341107A (zh) | 2017-11-10 |
CN107341107B CN107341107B (zh) | 2022-04-29 |
Family
ID=60219310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710536721.8A Active CN107341107B (zh) | 2017-07-04 | 2017-07-04 | 一种嵌入式开发的自动化测试方法及测试主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107341107B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109219018A (zh) * | 2018-09-06 | 2019-01-15 | 天津七二通信广播股份有限公司 | 一种可配置的铁路平调调车作业单显示方法 |
WO2019100655A1 (zh) * | 2017-11-24 | 2019-05-31 | 平安科技(深圳)有限公司 | 发票领用异常的构造方法、装置、计算机设备及存储介质 |
CN109857642A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种ui自动化脚本的阻塞式调试方法及调试工具 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216801A (zh) * | 2007-12-27 | 2008-07-09 | 东信和平智能卡股份有限公司 | 嵌入式系统的调试方法 |
CN102301344A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
CN103365701A (zh) * | 2013-07-10 | 2013-10-23 | 飞天诚信科技股份有限公司 | 一种模拟读卡器的工作方法和模拟通信系统 |
CN103748562A (zh) * | 2010-12-23 | 2014-04-23 | 英特尔公司 | 测试、验证和调试架构 |
CN105487969A (zh) * | 2014-10-09 | 2016-04-13 | 上海华虹集成电路有限责任公司 | 智能卡仿真器 |
CN105740139A (zh) * | 2014-12-09 | 2016-07-06 | 北京中船信息科技有限公司 | 一种基于虚拟环境的嵌入式软件调试方法 |
CN106326104A (zh) * | 2015-07-08 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 终端控件测试方法及装置 |
-
2017
- 2017-07-04 CN CN201710536721.8A patent/CN107341107B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216801A (zh) * | 2007-12-27 | 2008-07-09 | 东信和平智能卡股份有限公司 | 嵌入式系统的调试方法 |
CN103748562A (zh) * | 2010-12-23 | 2014-04-23 | 英特尔公司 | 测试、验证和调试架构 |
CN102301344A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
CN103365701A (zh) * | 2013-07-10 | 2013-10-23 | 飞天诚信科技股份有限公司 | 一种模拟读卡器的工作方法和模拟通信系统 |
CN105487969A (zh) * | 2014-10-09 | 2016-04-13 | 上海华虹集成电路有限责任公司 | 智能卡仿真器 |
CN105740139A (zh) * | 2014-12-09 | 2016-07-06 | 北京中船信息科技有限公司 | 一种基于虚拟环境的嵌入式软件调试方法 |
CN106326104A (zh) * | 2015-07-08 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 终端控件测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
郑德春 等: ""嵌入式模拟器中的JTAG应用"", 《浙江大学学报(工学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019100655A1 (zh) * | 2017-11-24 | 2019-05-31 | 平安科技(深圳)有限公司 | 发票领用异常的构造方法、装置、计算机设备及存储介质 |
CN109219018A (zh) * | 2018-09-06 | 2019-01-15 | 天津七二通信广播股份有限公司 | 一种可配置的铁路平调调车作业单显示方法 |
CN109857642A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种ui自动化脚本的阻塞式调试方法及调试工具 |
CN109857642B (zh) * | 2018-12-30 | 2022-10-11 | 贝壳技术有限公司 | 一种ui自动化脚本的阻塞式调试方法及调试工具 |
Also Published As
Publication number | Publication date |
---|---|
CN107341107B (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302554B (zh) | 一种Android系统自动化程序构建方法及系统 | |
CN107341107A (zh) | 一种嵌入式开发的自动化测试方法及测试主机 | |
Zeiss et al. | Applying the ISO 9126 quality model to test specifications–exemplified for TTCN-3 test specifications | |
CN106850372A (zh) | 一种控制器can信号的测试方法及系统 | |
CN109740222B (zh) | 一种针对汽车网联化场景的测试装置和系统 | |
CN108459850B (zh) | 生成测试脚本的方法、装置及系统 | |
CN108923999A (zh) | 一种网游服务器性能自动化测试方法及系统 | |
CN110688313B (zh) | 一种VxWorks操作系统下软件测试的故障注入方法 | |
CN109672470B (zh) | 一种小卫星星上软件上注和重构地面测试验证方法及系统 | |
CN109213676A (zh) | 一种用于测试脚本的离线调试方法及装置 | |
CN106789391A (zh) | 一种路由器dhcp功能的自动化测试方法及装置 | |
CN110188045A (zh) | 一种基于iOS系统自动化统计APP性能指标的方法和装置 | |
CN110704314A (zh) | 一种嵌入式软件测试的故障注入方法 | |
CN114238071A (zh) | 基于数字化仿真技术的dcs软件自动验证系统和方法 | |
CN106681877A (zh) | 芯片调试系统及方法与系统芯片 | |
CN105117340A (zh) | 用于iOS浏览器应用质量评估的URL检测方法和装置 | |
CN116500422A (zh) | 一种基于系统级测试平台的芯片并行测试系统和测试方法 | |
CN107590064A (zh) | 一种应用升级测试方法、装置和系统 | |
CN109739760B (zh) | 一种代码调测测试方法及装置、存储介质 | |
CN109976963A (zh) | 一种基于通用平台的bmc测试系统实现的方法和装置 | |
CN109754093A (zh) | 一种光猫维修系统和管理方法 | |
CN108536587A (zh) | 一种基于Appium的自动化测试方法及系统 | |
CN107220174A (zh) | 一种自动化测试的方法及装置 | |
CN108153668A (zh) | 应用的调试方法、装置及系统 | |
TWI266070B (en) | Chip-level design under test verification environment and method thereof |
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 |