CodedUI自动化测试及脱离VS独立运行

在VS中可创建“编码的UI测试”,可录制软件操作,再回放,最后还可以脱离VS独立运行。

在VS中运行测试

创建项目codeuitest,控件布局,如下图:

在按钮单击事件下添加代码:

if (string.IsNullOrEmpty(this.textBox1.Text))
{
    MessageBox.Show("请输入您的姓名!");
}
else
{
    MessageBox.Show(string.Format("Hello \"{0}\"!", this.textBox1.Text));
}

在“测试”下单击“创建测试”菜单,选择“编码的UI测试”模版,设置项目名称。(和VS2013相比,真心喜欢VS2010这种创建测试项目的方法)

选择通过录制来生成UI编码。

录制

当目标窗体上出现VS图标时,可开始操作

停止录制,并生成代码

在“测试结果”视图下可看到测试状态

脱离VS,独立运行UI测试

创建项目CodeUITestExe并加入到CodeUITest解决方案中。效果图如下:

添加对Microsoft.VisualStudio.QualityTools.UnitTestFramework、Microsoft.VisualStudio.TestTools.UITest.Common、Microsoft.VisualStudio.TestTools.UITest.Extension、Microsoft.VisualStudio.TestTools.UITesting及CodeUiTest、TestProject1项目的引用。

CodeUITestExe.Form1.cs代码如下:

using TestProject1;

namespace CodeUITestExe
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            TestProject1.TestInit.Init();
            TestProject1.CodedUITest1 test = new TestProject1.CodedUITest1();
            test.CodedUITestMethod1();
            TestProject1.TestInit.Cleanup();
        }
    }
}

在TestProject1中创建类TestInit.cs其代码如下:

using Microsoft.VisualStudio.TestTools.UITesting;

namespace TestProject1
{
    public class TestInit
    {
        public static void Init()
        {
            if (!Playback.IsInitialized)
            {
                Playback.Initialize();
            }
        }

        public static void Cleanup()
        {
            if (Playback.IsInitialized)
            {
                Playback.Cleanup();
            }
        }
    }
}

编译解决方案,先打开CodeUITest.exe,再打开CodeUITestExe.exe,执行测试时当出现找不到dll时,可将C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies下的Microsoft.VisualStudio.TestTools.UITest为前缀的dll复制到Debug下。

当将程序代码复制到其他电脑时,执行测试时会提示“Cannot perform ” on the control”错误,继续查找错误会发现“ CLSID {6DA215C2-D80D-42F2-A514-B44A16DCBAAA} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).”。究其原因是缺少了Microsoft.VisualStudio.TestTools.UITest.Playback.Engine.dll文件。将"C:\Program
Files\Common Files\microsoft shared\VSTT\10.0"下的此文件复制到Debug下,并通过regsvr32执行注册,请确保以管理员身份打开命令提示符执行注册。

演示实例源码,点击下载

时间: 2024-11-08 17:31:17

CodedUI自动化测试及脱离VS独立运行的相关文章

让Sqlite脱离VC++ Runtime独立运行

前段时间在开发OrayTalk(傲瑞通企业即时通信系统)的聊天记录模块时用到了Sqlite,这是我第一次接触和使用Sqlite,总体感觉还是非常不错的.这里把我使用Sqlite的经验跟大家分享一下. 一.关于Sqlite Sqlite是一款开源的.适合在客户端和嵌入式设备中使用的轻量级数据库,支持标准的SQL. 不像SqlServer或Oracle的引擎是一个独立的进程.通过TCP或命名管道等与程序进行通信,SQLite却是作为程序的一个部件.一个构成部分,使用Sqlite的方式就是直接在程序中

Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据

PRM 全称为ParnassusData Recovery Manager ,由 诗檀软件自主研发,拥有独立的软件著作权. PRM可以独立于Oracle软件运行,直接从Oracle数据文件中抽取表上的数据. 当以下几种场景中,都可以用上PRM: 无备份或者备份不可用情况下,数据表被意外truncate掉或者DROP掉 由于数据库损坏,导致的数据打不开 无法OPEN 数据块存在损坏,Oracle无法读取出数据 数据文件存在损坏,或者数据文件头信息不一致 等等 以上这些问题中,用户均可以考虑使用PR

一个基于.NET平台的自动化/压力测试系统设计简述(可独立运行,提供源码)

AutoTest系统设计概述 AutoTest是一个基于.NET平台实现的自动化/压力测试的系统,可独立运行于windows平台下,支持分布式部署,不需要其他配置或编译器的支持.(本质是一个基于协议的测试工具),前面还有一篇对其功能的简单介绍[http://www.cnblogs.com/lulianqi/p/4773146.html] AutoTest用于发布的部分有2个部分,主程序[AutoTest.exe]及分布式部署程序[RemoteService.exe](用于将将测试业务分布式部署到

将Java项目打包成可以独立运行的Jar包

因为一直也没怎么用过Java的原因,所以以前本科上课的时候,在控制台下运行Java程序都是仅仅运行单个的没有第三方库依赖的情况下运行的 那种情况特别简单,只要输入Javac 文件名.java等到编译完,再执行java 文件名 直接就可以运行了,但是,在公司实习需要写一个独立的来运行的项目, 并且可能要通过脚本来定时的运行,这样的话,最好是将项目打包成一个Jar包,然后,使用crontab创建一个新的定期运行的作业就可以了. 这样就可以使用java -jar 项目.jar来定时的运行这个任务. 但

VS2013编译的exe独立运行在XP中方案

转载知乎 现在,我们深入探讨一下:<如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件>. 这个问题是比较常见且容易造成初学者困惑的,作为曾经撞了无数次南墙的初级代码狗终于看到了自己能够回答的问题,那么就让我来简单阐述一下造成这个问题的简单原理极其简单解决方法,如有错误纰漏敬请指正. /*我们讨论的是非托管的C++程序.*/ 为了方便说明,我们新建一个简单的控制台应用程序项目,直接如图:非常简单,一个使用了C++标准库的控制台应用程序,在装有开发环境的本机顺利执行出

【转】如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件

问题描述: 用VS2013写好一个程序,在本机上运行一切正常.但是如果直接把exe文件放到另一台机器上用,则会出现: Windows XP:不是一个正常的win32程序 Window 7:缺少msvcp120.dll 能否有一种方法,把程序运行所需要的环境一并打包,使之可以在任何Windows计算机上使用? 为了方便说明,我们新建一个简单的控制台应用项目,直接如图: 非常简单,一个使用了C++标准库的控制台应用程序,在装有开发环境的本机顺序执行出如下效果: 真实一个旷世奇作,我们迫不及待地就此发

VS2013 help viewer搜索结果显示源码以及桌面独立运行help viewer

安装好VS2013后,启动help viewer2.1在搜索栏中搜搜时结果会出现HTML源码. 要解决这个问题先来看看MINE,即Multipurpose Internet Mail Extensions(多用途互联网邮件扩展类型),它是用于电子邮件.网络文档以及Internet上其他应用程序中的文件格式规范.它设定了某种扩展名的文件用一种指定的应用程序打开的类型,当该扩展名的文件被访问时,浏览器会自动指定相应的应用程序打开.其中HTML属于MINE其中的一种格式,而在VS help viewe

Jetty入门(1-2)配置Jetty - 独立运行模式

本文详述如何安装和配置Jetty服务器,主要讲述Jetty的独立运行模式(Standalone).随后介绍它的配置选项,以及模块化的架构. Jetty有独立运行模式.嵌入运行模式和Jetty Maven插件操作模式. 本文是独立运行模式为准. 一.部署环境 两个软件: 1)Java 8u60 http://download.Oracle.com/otn-pub/Java/jdk/8u60-b27/jdk-8u60-windows-x64.exe 2)Jetty 9.3.2 http://ecli

将java应用程序打包成独立运行的.exe方法

对于windows用户来说,将java应用程序打包成.exe最好不过了,现在我介绍两个方法. 1.用专业的应用程序打包工具InstallAnywhere,这个软件几乎能在所有平台上运行,当然你要下载到你需要的那个平台的啦!而且它也能打包成各个平台的安装程序(当然不是免费的).我下载的是7.1 企业版我只提供一些注册码,安装程序大家在网上找.InstallAnywhere7.1注册码使用方法参考:具体 2.用MINI的免费的工具javalunch,JavaLauncher的下载网址是:http:/