测试终端与计算机的连接方法和装置与流程

文档序号:21407907发布日期:2020-07-07 14:42阅读:490来源:国知局
测试终端与计算机的连接方法和装置与流程

本发明涉及计算机通信技术,特别是涉及一种测试终端与计算机的连接方法和装置。



背景技术:

终端自动化或手工测试时,需要连接执行机以便进行测试指令输入。在此过程中容易出现因adb程序与执行机连接的默认端口较低,容易被执行机上的其他程序占用,导致手机与执行机连接失败的现象。为了解决连接失败的问题,目前的处理方法有以下两种:

方法一、通过扫描电脑监听端口的方式,找到占用adb默认连接端口的进程,再通过杀掉占用进程的方式,恢复adb默认端口可用。

方法二、通过配置环境变量,修改adb程序的连接端口,以解决adb程序与其他程序出现的端口冲突问题,使adb程序可用。

发明人在实现本发明的过程中发现上述两种方法存在下述问题:

1、上述方法一实现过程复杂,耗时较长,效果不佳,容易出现重启执行机都不能解决的情况。具体原因分析如下:

(1)方法一的实现涉及多条windows系统命令,如果测试人员不熟悉该类命令,则会出现端口扫描不全、被占用的程序未被完全清理的情况,从而导致采用方法一进行处理后,终端仍不能连接被测电脑,该情况下,即使重启执行机,也往往会由于部分程序是开机自启动,而导致仍不能解决终端与执行机连接失败的问题。

(2)windows程序的监听端口有多个状态,存在多个进程占用同一个端口的情况。采用人工排查的方式,容易出现遗漏,使得被占用端口的程序未被完全清理,从而导致采用方法一进行处理后,终端仍不能连接执行机。这种情况下,即使重启执行机,也往往会由于部分程序是开机自启动,而导致仍不能解决终端与执行机连接失败的问题。

(3)部分windows软件有监控进程,检测到主进程被杀死后,这些监控进程会重启该被杀死的主进程,从而导致采用方法一进行处理后,终端还是不能连接执行机。这种情况下,即使重启执行机,也往往会由于后台程序会立即重启监听端口,导致端口再次被占用,从而导致仍不能解决终端与执行机连接失败的问题。

2、第二种方法相对较简单,但因安装其他软件导致该端口的占用,从而需要修改端口或杀死占用端口的进程。该问题的可能原因分析如下:

第二种方法中需要通过设置androidadb环境变量的方式解决连接失败的问题,但是,新的端口存在仍被其他程序占用的风险,从而导致终端的连接失败问题仍可能未被解决。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种测试终端与计算机的连接方法和装置,可以有效解决测试手机与工厂计算机连接失败的问题。

为了达到上述目的,本发明提出的技术方案为:

一种测试终端与计算机的连接方法,包括:

当计算机在收到测试终端的连接请求后,检测到相应安卓平台调试桥adb程序启动失败时,确定所述adb程序使用的端口,并根据当前对本计算机的端口扫描结果,确定本计算机中当前占用所述adb程序所使用端口的程序;

所述计算机确定当前解决连接失败的方式;

当所述方式为释放端口时,所述计算机杀死所确定的所有所述程序以及相应关联进程树对应的进程,并在检测到所述adb程序使用的端口未被占用时,重新启动所述adb程序。

较佳地,所述方法进一步包括:

当所述方式为修改端口时,所述计算机判断用户当前选择的新端口是否被占用,如果是,则在通知所述用户重新选择新端口,直到所选择的新端口未被占用,否则,将所述adb程序使用端口修改为当前选择的新端口后,重新启动所述adb程序。

较佳地,所述新端口大于预设的端口号。

较佳地,所述计算机确定当前解决连接失败的方式包括:

所述计算机将占用所述adb程序所使用端口的进程,通知给用户,并触发所述用户选择解决连接失败的方式;

所述计算机将所述用户选择的方式,确定为当前解决连接失败的方式。

本发明实施例还提供了一种测试终端与计算机的连接装置,设置于计算机中,包括:

检测模块,用于当计算机在收到测试终端的连接请求后,检测到相应安卓平台调试桥adb程序启动失败时,确定所述adb程序使用的端口,并根据当前对本计算机的端口扫描结果,确定本计算机中当前占用所述adb程序所使用端口的程序;

连接模块,用于确定当前解决连接失败的方式;当所述方式为释放端口时,所述计算机杀死所确定的所有所述程序以及相应关联进程树对应的进程,并在检测到所述adb程序使用的端口未被占用时,重新启动所述adb程序。

较佳地,所述连接模块,进一步用于当所述方式为修改端口时,判断用户当前选择的新端口是否被占用,如果是,则在通知所述用户重新选择新端口,直到所选择的新端口未被占用,否则,将所述adb程序使用端口修改为当前选择的新端口后,重新启动所述adb程序。

较佳地,所述新端口大于预设的端口号。

较佳地,所述连接模块,用于将占用所述adb程序所使用端口的进程,通知给用户,并触发所述用户选择解决连接失败的方式;将所述用户选择的方式,确定为当前解决连接失败的方式。

本发明实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如上述的测试终端与计算机的连接方法的步骤。

本发明实施例还提供了一种电子设备,包括如上述的非易失性计算机可读存储介质、以及可访问所述非易失性计算机可读存储介质的所述处理器。

综上所述,本发明实施例提出的测试终端与计算机的连接方案中,测试终端与计算机进行连接时,计算机在检测到相应安卓平台调试桥(adb)程序启动失败时,需要自动化扫描查找所有被占用的端口,根据扫描结果确定本计算机中当前占用adb程序所使用端口的程序,然后在需要采用释放端口的方式解决连接失败的问题时,杀死所确定的所有所述程序以及相应关联进程树对应的进程,并在确保所述adb程序使用的端口未被占用时,重新启动所述adb程序,以实现测试终端与计算机的连接。如此,通过自动化扫描可以避免人工分析存在端口查找遗漏的问题,另外,通过杀死占用adb程序的关联进程树对应的进程,并且在这些进程被杀死后再检测adb程序使用的端口是否被占用,只有被占用时才重新启动adb程序,如此,可以防止被杀死程序自启动,确保之后该端口不会再次被杀死的程序所占用,并且保障adb程序重启后能够正常运行,从而实现测试终端与计算机的成功连接,有效解决测试手机与工厂计算机连接失败的问题。

附图说明

图1为本发明实施例的方法流程示意图;

图2为本发明实施例的装置结构示意图;

图3为本发明一实施例的详细流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。

图1为本发明实施例的方法流程示意图,如图1所示,该实施例实现的测试终端与计算机的连接方法主要包括:

步骤101、当计算机在收到测试终端的连接请求后,检测到相应安卓平台调试桥adb程序启动失败时,确定所述adb程序使用的端口,并根据当前对本计算机的端口扫描结果,确定本计算机中当前占用所述adb程序所使用端口的程序。

具体地,所述测试终端可以是测试手机,所述计算机可以是工厂执行机,但不限于此,对于终端与计算机连接的场景均可适用。

本步骤中,测试终端与计算机进行连接时,计算机在检测到相应安卓平台调试桥(adb)程序启动失败时,需要自动化扫描计算机中的端口,以便查找到本计算机中当前占用adb程序所使用端口的所有程序。如此,可以有效避免由于人工查找存在遗漏所致的连接失败无法解决的问题。

步骤102、所述计算机确定当前解决连接失败的方式。

本步骤中,当前解决连接失败的方式可根据预设的失败解决方式确定,也可以根据当前用户选择的解决方式确定。较佳地,当采用后者时,计算机可以采用下述方法确定当前解决连接失败的方式:

所述计算机将占用所述adb程序所使用端口的进程,通知给用户,并触发所述用户选择解决连接失败的方式;

所述计算机将所述用户选择的方式,确定为当前解决连接失败的方式。

步骤103、当所述方式为释放端口时,所述计算机杀死所确定的所有所述程序以及相应关联进程树对应的进程,并在检测到所述adb程序使用的端口未被占用时,重新启动所述adb程序。

本步骤,与现有方法所不同的其中一点是,计算机需要杀死当前占用所述adb程序所使用端口的进程的关联进程树所涉及的所述进程,如此,可以避免由于程序自启动所致的连接失败无法解决的问题,确保通过杀死这些进程释放所述adb程序所使用端口的有效性,从而可以有效解决测试终端连接失败的问题。

上述方法中,在重新启动所述adb程序之前,需要核实所述adb程序使用的端口是否未被占用时,只有在未被占用时,才重新启动adb程序,从而可以保障adb程序重启后能够正常运行,进而实现测试终端与计算机的成功连接,有效解决测试手机与工厂计算机连接失败的问题。

较佳地,当所述方式为修改端口时,所述计算机判断用户当前选择的新端口是否被占用,如果是,则在通知所述用户重新选择新端口,直到所选择的新端口未被占用,否则,将所述adb程序使用端口修改为当前选择的新端口后,重新启动所述adb程序。

在实际应用中,所述计算机可以通知用户按照新端口大于预设的端口号的原则,选择新端口。所述端口号可以设置为较大的端口号,这样,使得新端口的号比较大,从而可以降低被占用的概率。

上述方法中,只有在核实新设置的端口未被占用时,才重新启动adb程序,从而可以保障adb程序重启后能够正常运行,进而实现测试终端与计算机的成功连接,有效解决测试手机与工厂计算机连接失败的问题。

与上述方法相对应,本发明实施例还提供了一种测试终端与计算机的连接装置,设置于计算机中,如图2所示包括:

检测模块,用于当计算机在收到测试终端的连接请求后,检测到相应安卓平台调试桥adb程序启动失败时,确定所述adb程序使用的端口,并根据当前对本计算机的端口扫描结果,确定本计算机中当前占用所述adb程序所使用端口的程序;

连接模块,用于确定当前解决连接失败的方式;当所述方式为释放端口时,所述计算机杀死所确定的所有所述程序以及相应关联进程树对应的进程,并在检测到所述adb程序使用的端口未被占用时,重新启动所述adb程序。

较佳地,所述连接模块,进一步用于当所述方式为修改端口时,判断用户当前选择的新端口是否被占用,如果是,则在通知所述用户重新选择新端口,直到所选择的新端口未被占用,否则,将所述adb程序使用端口修改为当前选择的新端口后,重新启动所述adb程序。

较佳地,所述连接模块,用于将占用所述adb程序所使用端口的进程,通知给用户,并触发所述用户选择解决连接失败的方式;将所述用户选择的方式,确定为当前解决连接失败的方式。

图3为上述方法实施例的具体实现过程示例图,如图3所示,详细实现如下:

1:程序启动,向windows系统执行命令:adbshell,获得返回报文中adb命令使用的端口号。

2:向windows执行命令netstat-ano命令,扫描所有端口,并保存过该扫描结果。将ip地址后跟的端口与第一步adbshell命令获得的端口对比,如果相同则记录该端口对应所有的程序pid。

3:比对完成后,windows系统发送“tasklist”命令,调用系统的进程管理器,获得所有pid对应的进程名称,并向用户展示占用该端口的所有进程名。

4:询问用户是修改端口还是释放现有端口。

5:如户选择修改端口,让用户输入新的端口,并建议修改的端大于10000。

6:将输入的端口与第二步骤扫描的结果进行比对,检测提交的端口是否在扫描结果中,如果在扫描结果中,则提示用户该端口已经被占用,请重新输入。

7:如不在扫描结果中,则向windows系统发送setandroid_adb_server_port=54321(54321为用户输入的新端口号)。

8:向windows系统执行命令adbshell启动adb调试程序。

9:如果用户选择释放端口,则向windows系统执行taskkill/pid12345pid23456/pid34567/f(12345,2345,34567为扫描出占用adb命令端口的程序pid,在第二步中获得)。

10:等待2s后再次执行netstat-ano|findstr"5037"(进程占用端口)命令,确认端口使用情况。

11:如果扫描结果为空,则向windows系统执行adbshell命令启动adb调试程序。

12:如果扫描结果不为空,则执行taskkill/pid22345pid22456/pid22567/t/f(22345,22456,22567位第二次扫描占用adb调试程序的端口)命令,杀死该进程以及由该进程启动的子进程,解决程序后台自动启动的问题。

13:向windows系统执行adbshell命令,启动该调试程序。

本发明实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储指令,其特征在于,所述指令在由处理器执行时使得所述处理器执行如上述的测试终端与计算机的连接方法的步骤。

本发明实施例还提供了一种电子设备,包括如上述的非易失性计算机可读存储介质、以及可访问所述非易失性计算机可读存储介质的所述处理器。

另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。

另外,本发明所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入微控制器等来实现。因此这种可以实现本发明所述方法的硬件也可以构成本发明。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1