手机网页的自动测试方案
各位大虾,有没有谁知道怎样自动化测试手机网页的?现在的手机网页已经做的和PC机上的显示差不多了,能用鼠标控制,可是怎么样用自动化测试来实现呢?
求助各位,先谢过了! Hi, 你这个问题应该在这个论坛找不到答案的……希望偶知道的能对你有帮助……
中间设计到一个关键问题,如果将手机屏幕映射到PC,并实现在PC端的操作指令可以通过USB或串口返回手机。
1、让开发人员做二次开发,根据平台设计一个专门的接口,通过USB、TCP/IP、BT等等与PC实现数据的双向传输(双向是必须的),不过貌似国内很少有企业吃饱了没事,去做这种组件吧……
2、Mobile平台提供了免费的这个组件,具体效果是:将手机屏幕映射到PC端得模拟器窗口中,并可以通过PC端(或手机端)的操作,直接将操作映射到另外一个目标上。
但是其中有一个问题,目前的自动化测试测试工具(QTP/RB)不能识别模拟器中的器件,只能通过抓取位图比对,根据坐标点的点击来设计测试用例。
以下是偶以前用QTP测试模拟器的一些体会:http://www.cnblogs.com/Jackc/archive/2009/02/11/1388022.html
3、搭建PC与终端同步的步骤文档在家里,晚上再发吧
回复 2# 的帖子
:handshake 非常感谢你的回复。我们现在的情况属于你说的第2点,你说的抓取位图比对具体是怎么做的呢?
呵呵,期待你的文档,和进一步的帮助。
[ 本帖最后由 janehu 于 2009-9-11 14:32 编辑 ] 手机与PC同步
第一,下载安装Activesync
第二,下载安装Activesync remote display
第三,如果是使用模拟器,还需要下载安装connect emulator with activesync
第四,把设备和PC通过Activesync连接
第五,把..\ActiveSync_Remote_Display\devices\wce400\armv4t目录下的cerdisp2.exe and KillProc.exe拷贝到你的设备windows目录下面
第六,运行activesync remote display程序,出现“The OS or CPU of this device is unknown to this application”的信息不管它,点OK就行
参考网页:http://www.cnblogs.com/jackc/archive/2009/02/11/1388025.html
(居然是放到网上了的……,偶还回家找半天……:L )
模拟器与PC同步
参考网页:http://hi.baidu.com/changf/blog/item/a2a1ab640d02e0f6f73654fb.html
(这个偶自己没有实践过,有时间你可以去玩玩看:lol )
回复 3# 的帖子
现在测试手机相关的应用软件,测试第一轮、第二轮貌似大多是在PC上进行的;到了第三轮、项目预发时,才通过手机端来测试。
映射到PC机上,用firefox+xhtml或者opera浏览器,都可以顺利访问web应用的;
自动化测试的话,用QTP或者ruby来做,都是可以实现的;
--- 以上只是我们公司项目组的的一些实践。
回复 4# 的帖子
谢谢jackc的回复,那么晚了,还在线上,真是辛苦啊~~~~你说的这个同步我现在又工具可以实现,但是现在的问题是没法控制现在手机网页上的鼠标移动,呵呵
回复 5# 的帖子
GeorgeWangLC, 看来你有这方面的经验,能详细讲一下吗?回复 6# 的帖子
不是很明白你说的“没法控制现在手机网页上的鼠标移动”是什么意思。映射到PC模拟器后,鼠标无法在模拟器的网页界面显示出来?
这个问题偶以前没有遇到过,主要是没有测试过手机网页的东东。
可以考虑使用抓取点击导航键来完成浏览网页的操作。
QTP的简单入门你在GOOGLE上搜一下就有了,不一定装最新版本的,8.2~9.0的比较好,主要是破解版比较好找到。
回复 8# 的帖子
恩,谢谢,我会先去了解一下QTP我说的意思是,我们用脚本模拟的是手机导航键的上下左右的滚动,由于现在网页上用的鼠标控制,随机性比较大,脚本的可控性就不是很好了,比如,打开一个网页,我要向下打开一个连接,没法准确控制鼠标的移动! 偶了解你的意思了,自动化测试工具其实是一个“录制——>回放”的过程,所以一个脚本一般只能访问固定的网址。
建议你选一个更新不那么频繁的网页的进行测试(最好是自己能做一个测试网页)。
如果你能找到不更新的网页,那么你就可以录制下你的在这个网页上的鼠标操作,并成功完成回放的整个过程。
如果网页要更新,那么你就需要考虑检查点的设置问题了,怎么合理的设置检查点才能保证网页即使更新了,也对你期望测试的部分没有影响 :handshake , 呵呵,看来你果然经验丰富,一说你就明白
恩,我有考虑过找那种不怎么更新的网页,但是这样做毕竟有局限性,网页更新测试点倒是好设,就是操作就得跟着变,这样就又要更新脚本了
我现在就想找一种解决方案,可以通过屏幕上要找的位置,让脚本控制鼠标点过去,有点指哪打哪的意思。。。。
[ 本帖最后由 janehu 于 2009-9-15 17:10 编辑 ] 手机的自动化测试最好是做性能测试,特别是手机模拟器的测试,因为偶们目前能找到的免费测试工具都不能识别出模拟器内的组件(它们认为模拟器是一个播放图片的简单窗口:L )
所以,偶们在录制脚本的时候,只能录制点击模拟器窗口坐标的事件。
举个例子:
你在模拟器的实际操作是:在A界面--->使用鼠标左键单击“确定”按钮--->进入B界面。
但是工具录制到的事件是:在A图片(位图)中--->鼠标左键单击“X,Y”位置--->换成了B图片
当然,也可以多做一些分支检测点来做更多的随机测试,但是这样会让你的脚本变得很复杂。越智能的脚本其代码行数越多……
还是用上边的例子:
你在模拟器的实际操作是:在A界面--->使用鼠标左键单击“确定”按钮--->正确的情况可能进入B界面,也可能弹出错误提示框;错误的情况可能还是停留在A界面。
这时你的脚本就变成:在A图片(位图)中--->鼠标左键单击“X,Y”位置--->检查操作结果,若检查到B界面的位图,则判断进入了B界面,然后执行B界面的后面的脚本
若检查到提示框的位图,则判断弹出了提示框,则执行关闭提示框的操作,然后再检查是否仍处于A界面,再决定下一步操作
若检查到仍停留在A界面,且未进入B界面或弹出提示框,则记录故障,并抓取错误出现的屏幕图片。
根据你们项目的实际情况,来决定是否测试更多的随机性操作。建议自动化测试的内容只占功能测试的10%就差不多了,主要目的是检查多次操作以及长时间操作是否会带来故障。
回复 12# 的帖子
hi jackc,这种直接对模拟器操作就可以了?不用什么映射屏幕吧。貌似MOBILE有影射屏幕功能,像BREW平台就没有那功能。只要对模拟器操作就能录制脚本?这方面的资料好少啊,我也是刚接触QTP,在网上搜了一下QTP9.2版本的已经停止MOBILE的支持服务。不知道现在哪个QTP版本对MOBILE应用有较好的支持? 其实说句实话,当时偶在开源的MS里并没有找到现成的工具。偶们那个项目最终也是全部采用坐标+位图来实现所有的脚本操作的。感觉效果一般,只能完成一些很简单的性能测试内容。比如:写1000个随机生成的用户存到电话本里;发1000条随机短信到选定的几个号码中(乱发的话怕被投诉:) ),等等。
主要当时做这个方面的人倒是不少,可惜都不开源:L
最近晃到NOKIA里,看到他们做的一个类似功能的自动化测试工具,偶才恍然大悟:不应该是工具奴役人,而是人去使用工具。
NOKIA为自己的UI自动化测试工具提供了一些API,比如click一个button,只需要发送一个AT指令到终端就可以了。而在PC端的XML文件中,可以找到大量的搭建测试环境的信息,比如指令与参数的定义。
反过来思考,针对MS模拟器+QTP,偶们是可以优化脚本的。比如:偶们自己定义大量(切记,这是个大工程):L 的QTP组件,主要是将各个按钮位图定义为可用的button,做得更高级些,可以导入字库,将不可识别的位图文字转换成可识别的字符串等等。不过这些前期搭建环境的过程将异常繁琐,如果能找到MS提供的API,加上开发的协作可能会快一些,偶想应该是能搞定的(理想状态)。
所以,多想,多做,总能达到自己的目标的:) 用scala写个自动化测试工具,放在 symbian上,测试手机UI.各种组件,按键点击等等.. 恩,LS说的方法应该是可行的,因为偶接触的NOKIA工具是XML做的,将XML移植scala是很easy的事情。
不过不管选用哪种语言或工具,API的获得才是整个测试环境搭建中最难的部分。 映射屏幕就是用的你在另一个帖子中说的大显示软件吧。实际效果跟模拟器应该是类似的吧? 请教Jackc,现在研究手机性能测试,不知道从何入手,手机上有基于wap的,又有其他应用程序,不知道客户会给我手机还是模拟器还是代码,只说是J2ME,不知道用什么工具(付费免费都可以)请教:handshake
页:
[1]