一种浏览器的测试方法和系统的制作方法_2

文档序号:8395809阅读:来源:国知局
测试的自动化,提高测试的便捷性和测试效率。
【附图说明】
[0075]图1是本申请一种浏览器的测试方法实施例1的流程图;
[0076]图2是本申请一种浏览器的测试方法实施例2的流程图;
[0077]图3是本申请一种浏览器的测试方法实施例3的流程图;
[0078]图4是本申请一种浏览器的测试方法实施例4的流程图;
[0079]图5是本申请一种浏览器的测试系统实施例的结构图。
【具体实施方式】
[0080]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本申请作进一步详细的说明。
[0081]参照图1,示出了本申请一种浏览器的测试方法实施例1的流程图,所述浏览器至少包括第一内核和第二内核,具体可以包括:
[0082]步骤101、加载当前浏览器页面;
[0083]步骤102、识别当前浏览器页面的内核;
[0084]步骤103、依据当前浏览器页面的内核,获取相应的文档对象;
[0085]步骤104、依据当前浏览器页面的文档对象模拟用户的操作。
[0086]本申请可用于WebKit+Trident、Gecko+Trident等双核或多核浏览器,用于通过识别来获取不同内核的文档对象,利用文档对象模拟用户操作,实现双核浏览器网测试的自动化,提高测试效率。
[0087]本申请可以基于当前浏览器页面的控件,提供如下识别当前浏览器页面的内核的方案:
[0088]方案一、
[0089]所述识别当前浏览器页面的内核的步骤,具体可以包括:
[0090]步骤Al、采用查找标题的方式得到当前浏览器窗口的句柄;
[0091]步骤A2、依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;
[0092]当前浏览器窗口相对屏幕的位置具有四个坐标:左上角坐标、左下角坐标、右上角坐标和右下角坐标,为得到当前浏览器页面的句柄,本申请仅选取左上角坐标。在左上角坐标的基础上,通常横向纵向加180个像素,获取相应点的句柄,即可得到当前浏览器页面的句柄。
[0093]步骤A3、依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
[0094]在实际中,如果当前浏览器页面的句柄类名是“Chrome_RenderWidgetHostHWND”,则认为当前浏览器页面为极速页面,于是可将当前浏览器页面的内核识别为WebKit内核;如果当前浏览器页面的句柄类名是“Internet Explorer_Server”,则认为当前浏览器页面为IE页面,于是将当前浏览器页面的内核识别为Trident内核;如果当前浏览器页面的句柄类名为“MozillaWindowClass”,则说明是Firefox浏览器,而Firefox浏览器对应的是Gecko内核,
[0095]方案二、
[0096]所述识别当前浏览器页面的内核的步骤,具体可以包括:
[0097]步骤B1、采用查找标题的方式得到当前浏览器窗口的句柄;
[0098]步骤B2、依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
[0099]步骤B3、枚举当前浏览器窗口的进程的子进程;
[0100]步骤B4、依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
[0101]在实际中,可以查找当前浏览器窗口的进程的子进程的类属性,如果找到“Chrome_RenderWidgetHostHWND”这个类,认为当前浏览器页面为极速页面,于是可将当前浏览器页面的内核识别为WebKit内核;如果找到“Internet Explorer_Server”,则认为当前浏览器页面为IE页面,于是将当前浏览器页面的内核识别为Trident内核;如果找到“MozillaWindowClass”,则认为当前浏览器页面为Firefox页面,于是将当前浏览器页面的内核识别为Gecko内核。
[0102]以上对识别当前浏览器页面的内核的几种方案进行了详细介绍,可以理解,本领域技术人员根据需要结合使用上述几种方案,或者,使用其中任一种方案。另外,对于内核类别的识别,是不限于上述两种方案的,随着技术的发展,其它用于内核类别识别的方法都涵盖在本申请的范围之中。
[0103]DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得可以访问页面其他的标准组件,使得可以解决各种不同游览器之间的兼容问题,使得允许访问和操作HTML页面中的每一个单独的元素。
[0104]所有的浏览器都执行了 DOM规范,且文件对象存在于各种操作系统中。例如,在Windows系统中,文件(Document)对象是Windows对象的一部分,可通过window,document属性对其进行访问。每个载入浏览器的HTML (超文本标记语言,Hypertext MarkupLanguage)文档都会成为Document对象。运用Document对象可以从脚本中对HTML页面中的所有元素进行访问,比如:点击click O、查找指定id的元素getElementByldO等用户操作。
[0105]在本申请的一种优选实施例中,所述依据当前浏览器页面的内核,获取相应的文档对象的步骤,具体可以包括:
[0106]如果当前浏览器页面的内核为第一内核,则使用IHTMLDocument2接口获取相应的文件对象;如果当前浏览器页面的内核为第二内核,则依据相应内核服务器的专用通道获取相应的文件对象。在本申请实施例中,优选的是,所述第一内核为Trident内核,所述第二内核为WebKit或Gecko。由于使用微软开放的IHTMLDocument2接口获取浏览器页面的文档对象,为本领域的公知技术,故在此不作赘述。
[0107]在具体实现中,不同的浏览器测试用例可以使用上述获取的当前浏览器页面的文档对象来模拟不同的用户操作。假设要测试双核浏览器的稳定性,则可以把稳定性测试用例搭建到互联网页面上。
[0108]例如,启动浏览器、打开百度页面后获取到当前页面的document对象,然后点击“新闻”链接,相应的代码如下:
[0109]links = ieDoc.getElementsByTagName (’ a )
[0110]for(i = 0 ;i< = links, length ;i++)
[0111]{if (links[i].1nnerText =="登录"){
[0112]links [i].click ())}}
[0113]当用户点击【测试】按钮时,就会调用上述获取的当前浏览器页面的文档对象来执行所设计好的操作,比如:疯狂的打开一些页面、看视频、关闭标签等操作。最后根据打开的页面数量和崩溃数,给用户一个分值,说明其浏览器的稳定性。
[0114]在本申请的一种优选实施例中,所述加载当前浏览器页面的步骤,可以进一步包括:
[0115]采用第一子线程加载当前浏览器页面,并延迟判断当前浏览器页面是否一直处于加载中,若是,则关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
[0116]本实施例采用多线程的方法,也即使用子线程进行了回传判断,延迟判断网页是否一直加载中,如果是的话就关闭当前浏览器页面及相应的子线程,并采用其它子线程进行后续浏览器页面的加载;由于关闭当前浏览器页面及相应的子线程可以重新初始化第二内核服务器而继续使用,避免第二内核服务器的阻塞,提高测试效率。
[0117]总之,本申请可以在360极速浏览器等WebKit+Trident、Gecko+Trident等双核浏览器或多核浏览器中获取当前浏览器页面的文档对象,后期使用当前浏览器页面的文档对象来模拟不同的用户操作结合压力测试等各种浏览器测试方法,计算在测试期间出现的卡死、崩溃概率等参数,从而得到浏览器性能的相关数据。
[0118]参照图2,示出了本申请一种浏览器的测试方法实施例2的流程图,所述浏览器至少包括第一内核和第二内核,具体可以包括:
[0119]步骤201、创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
[0120]本申请实施例中,所述第二内核可以为WebKit或Gecko ;创建Gecko或WebKit内核服务器的专用通道,并依据该专用通道启动浏览器,是为了创建操作Gecko或WebKit内核服务器的对象,从而为下一步获取相应内核的文档对象做好准备。
[0121]例如,WebKit服务器的一个典型示例为chromedriver服务器,其通常应用于chrome浏览器中。在实际中,启动chromedriver.exe创建通信端口,就可以给通信端口发送
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1