分享和关爱由此萌生,测试的人生会像流水和氧气 ,逐渐逐渐染绿了山河,染蓝了天空,萌生了飞鸟鱼虫,遍地都是生命。这是寒武纪带给我们的这份喜悦和希望。

VS测试中遇到的2个棘手问题--第一篇

上一篇 / 下一篇  2014-04-06 23:32:44 / 个人分类:VisualStudio CodedUI Automation

    这两天我在测试的过程中遇到了两个非常棘手的问题。
    第一个问题就是,VS2012在运行自动化测试完全完成之后,就会自动把浏览器关闭了。
    我希望能在录制回放之后,它能将最后一页的页面仍然保留着,这样就能方便测试人员查看情况。
    但是在VS2010中,就没有这个问题,VS2010 在回放之后,页面是保留着的。
    我家安装了VS2012,当时是想使用最先进的版本,所以就毫不犹豫的选择了VS2012。
    为了能够实现这个保留页面的效果,尝试了各种情况。都一一失败,最终还是痛心的卸载了VS2012,并安装了VS2010。
    以下是我尝试VS2012的情况。

打开浏览器的两种命令:

BrowserWindow window = BrowserWindow.Launch(new Uri("http://www.baidu.com/"));
Process p = Process.Start(@"C:\Users\XXX\AppData\Roaming\360se6\Application\360se.exe", "http://www.baidu.com");
BrowserWindow browser = BrowserWindow.FromProcess(p);
根据网上的介绍我应该在这之后加上这个语句:
window.CloseOnPlaybackCleanup = false;
这样就应该能够在运行之后就关闭浏览器了。
但是根据我的实验下来并不是完全无效的-当然也并不称之为有效的。
当我打开了一个游览器之后,运行
BrowserWindow window = BrowserWindow.Launch(new Uri("http://www.baidu.com/"));
window.CloseOnPlaybackCleanup = false;
此时就会有2个浏览器留着,也就是说,VS2012自动化测试所打开的那个浏览器也被保留下来了。--此时有效。
如果我最初没有打开浏览器,而直接运行以上的语句,那么在以上语句运行完成之后,这个VS2012自动化测试所打开的那个浏览器就会被自动关闭。
不管是使用IE,还是其他浏览器都是一样的结果。
不管是在哪个函数中放置以上的语句,也都是一样的效果。(比如[TestInitialize]等等)
浏览器被无情的关闭了。
以下是我在国外博客上查到的此问题的回答:

This change to this functionality in VS 2012 is by design. It is however possible to rollback the behaviour to how it originally was in VS 2010 i.e. the IE window will not close after the test execution unless otherwise commanded by the test to do so.

To go back to the original functionality, set BrowserWindow.CloseOnPlaybackCleanup = false

至此,卸载了VS2012。









TAG:

51Testing小编的个人空间 引用 删除 zaza9084   /   2014-04-09 10:44:07
您好,我是51Testing软件测试网的编辑,您的本篇博文近日将被推荐至51Testing软件测试网首页发表~
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
 

评分:0

我来说两句

wchair

wchair

测试爱好者,数学爱好者,幻想爱好者,故事爱好者!

日历

« 2024-02-22  
    123
45678910
11121314151617
18192021222324
2526272829  

数据统计

  • 访问量: 40012
  • 日志数: 32
  • 建立时间: 2007-11-13
  • 更新时间: 2022-11-29

RSS订阅

Open Toolbar