51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5832|回复: 6
打印 上一主题 下一主题

给大家贡献一个原创的vs2010 编码的UI自动化测试例子

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-3-11 17:11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是一个使用vs2010的Coded UI Test实现数据驱动的用户自动登录测试的例子,我同时发表在我的csdn博客中http://blog.csdn.net/teaca/archive/2011/01/02/6112780.aspx
在vs中有三种方式可以创建自动化测试。其中vs为我们提供两种方式,还有一种方式是自己手写代码。通过添加Coded UI测试项的时候可以看出来,如图:

如果添加的时候取消它提供方式,日后也可以在测试菜单下选择代码生成方式,同样可以生成代码。如图:


l
使用编码的UI测试生成器生成代码。选择这种方式后,就会显示显示编码的UI测试生成器:


点击“开始录制”图标,就会开始录制我们的操作,再点击“生成代码”图标就会在测试项目中生成代码,然后再在其基础上修改成我们想要的测试代码。

l
使用现有的操作录制。

这种方式是我们在执行测试用例的时候选择了创建操作录制。这样才能在使用这种方式的时候选择执行测试用例时创建的录制。


使用录制的代码,速度不一定快,一般录制的都不能直接使用,需要修改,而且代码量相对也多一点。修改别人的代码确实很头疼,当然也有我对C#的应用、vs提供测试API不熟的缘故,总之我要实现读取外部文件中的用户名和密码,自动登录,并且验证登录是否成功这个需求,使用录制的不是这里有问题就是那里有问题。例如vs录制的时候对密码加密了,因此在给密码赋值的时候要使用Playback.EncryptText()对密码加密才能登录,在验证登录结果的时候始终使用的是录制的验证,反之就是有问题。汗,自己写就什么问题都好解决。

l
使用自己写的代码创建自动化测试

目标:要实现打开浏览器,输入登录地址,从外部数据源中读取用户名和密码登录系统,最后验证是否登录成功。

在实现之前,我们需要先学习一些基础知识。

首先来了解下如何实现数据驱动的自动化测试,说白了就是参数化测试数据,微软美其名曰“数据驱动”。

1、
添加数据源。

在测试视图窗口中选择测试方法,在右键菜单中选择“属性”,然后找到“数据连接字符串”项,单击浏览,可以看到vs为我们提供了三种数据源方式。如图:


我选择csv格式的。数据如下:,选用其他数据源是一样的道理。

2、
读取数据源中的数据。

很简单,例如取用户名,使用TestContext.DataRow["用户名"].ToString ()即可。执行测试的时候会自动迭代表中的数据。


其次,我们写编码的UI测试很多时候是找到UI对象,然后对其进行操作。那么如那么怎么才能知道用什么特征去识别对象呢?

一)我们可以使用vsCodedUITestBuilder

将中间那个高亮图标拖动到对象上,生成器属性框中就显示对象的一些属性,一看Id就知道可以唯一识别对象的,因此这样就可以找到用户名输入框:

HtmlEdit usernameInput = new HtmlEdit(browser);

usernameInput.SearchProperties[HtmlEdit.PropertyNames.Id] = "TxtUserName";


有时候单靠一个属性识别不了对象,可以多个属性组合,也可以通过寻找合适的参照物,再识别对象。例如:


HtmlSpan resultSpan = new HtmlSpan(browser);


resultSpan.FilterProperties[HtmlSpan.PropertyNames.Class] = "user_header_photo";


HtmlHyperlink resultLink = new HtmlHyperlink(resultSpan);


resultLink.FilterProperties[HtmlHyperlink.PropertyNames.Class] = "rank";

二)查看源代码,使用辅助工具人工分析。例如,可以在firefox下使用view source chart插件。View source chart对整个页面分层显示了,可以很方便的查看页面元素。

前期准备做好了,我们就可以编写代码了,代码如下:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "|DataDirectory|\\users.csv", "users#csv", DataAccessMethod.Sequential), DeploymentItem("manualLoginTest\\users.csv"), TestMethod]


public void CodedUITestMethod1()


{


//清楚cookies,以免影响测试


BrowserWindow.ClearCookies();


BrowserWindow browser;


string username=TestContext.DataRow["用户名"].ToString ();


browser = BrowserWindow.Launch(new Uri("http://xxx/login.aspx"));


//输入用户名和密码


HtmlEdit usernameInput = new HtmlEdit(browser);


usernameInput.SearchProperties[HtmlEdit.PropertyNames.Id] = "TxtUserName";


usernameInput.Text = username;


HtmlEdit passwordInput = new HtmlEdit(browser);


passwordInput.SearchProperties[HtmlEdit.PropertyNames.Id] = "TxtUserPass";


passwordInput.Text = TestContext.DataRow["密码"].ToString();


//模拟鼠标单击登录按钮


HtmlInputButton loginButton = new HtmlInputButton(browser);


loginButton.SearchProperties[HtmlEdit.PropertyNames.Id] = "BtnLogin";


Mouse.Click(loginButton);


//找到检查点


HtmlSpan resultSpan = new HtmlSpan(browser);


resultSpan.FilterProperties[HtmlSpan.PropertyNames.Class] = "user_header_photo";


HtmlHyperlink resultLink = new HtmlHyperlink(resultSpan);


resultLink.FilterProperties[HtmlHyperlink.PropertyNames.Class] = "rank";


//验证结果


try {


Assert.AreEqual(username, resultLink.InnerText);


}


catch {



throw;


}


finally {


browser.Close();


}


}


呵呵附上附件,看了会有惊喜的,因为更详细

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2011-3-14 10:17:41 | 只看该作者
沙发哦,谢谢楼主分享,我先研究一下
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-3-14 11:21:11 | 只看该作者
恩,正在关注着方面,收下看看,感谢!
图看不到,杯具啦……
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2011-3-15 12:40:43 | 只看该作者
不会吧,图看不到,我看得到,是不是浏览器的缘故?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2011-4-18 10:06:08 | 只看该作者
恩 我也看不到图呢。不过我把文档下载下来就看见图了!!谢谢楼主分享!!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-4-18 13:19:14 | 只看该作者
下载看看 。多谢分享。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-8-31 09:21:15 | 只看该作者
楼主威武~~~
我先是因为找.net自动化测试之道一书找到了楼主在CSDN上的blog,里面有关该书的翻译我都收藏了
没想到在51里又看到了楼主..
很佩服楼主的技术~~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 04:02 , Processed in 0.074308 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表