我一直在使用VS2010的Coded UI Test(CUIT)功能.
录制CodedUI框架时会生成许多分层类.
我想知道(手工编写)CUIT是否会减少创建的代码,是否会像生成的代码一样优化(在搜索元素中)?
还有哪些情况可以手动编码CUIT?
我正在编写的用于编码UI测试的应用程序有一个窗口,其中窗口标题的一部分基于为临时文件生成的随机文件名,因此测试只能知道窗口标题的静态部分.
偶尔,当没有其他窗口打开时,测试运行正常.但是,当其他窗口打开时,这有点问题.如果其他窗口具有类似的控件,则测试选择哪个窗口是不可预测的.
我有一个Web应用程序.我正在使用VS 2012 Coded UI来测试Web应用程序.我已经记录了测试并运行它,它工作正常.但代码覆盖窗口仅提供测试项目的代码覆盖率,它不提供网站项目的代码覆盖率以及Web项目中引用的其他dll项目.
我在解决方案中添加了testsetting文件并选择了相同的文件.
任何线索?
我正在运行一个引用DLL的CodedUI测试,该DLL引用了一种"配置"文件.在运行测试时,当前Directory返回CodedUI放置我使用过的测试结果文件的目录
AppDomain.CurrentDomain.BaseDirectory
Run Code Online (Sandbox Code Playgroud)
和
System.Reflection.Assembly.GetExecutingAssembly().CodeBase
Run Code Online (Sandbox Code Playgroud)
和
System.Reflection.Assembly.GetExecutingAssembly().Location
Run Code Online (Sandbox Code Playgroud)
这些都给了我相同的道路
我需要的是获取DLL所在的路径,因为这是构建配置文件的位置.
如果我正在调试或者我刚刚运行测试(显然),这将改变的位置,所以我不能使用它并向后导航或类似的东西.
有没有其他方法来获取您引用的DLL的位置?
编辑:
我从我引用的DLL内部引用此配置文件.
我正在尝试测试Visual Studio的Web应用程序的自动化测试功能,而Coded UI Test Builder看起来可能很有希望.
我可以让它记录和回放动作,但我无法弄清楚如何使用十字准线按钮来创建断言.
例如,在此视频中,演示者开始录制,然后打开IE并能够为断言选择不同的UI元素.然而,当我这样做时,一旦我打开IE,十字准线会变灰.
我是否需要安装插件或其他工具才能使Coded UI Test Builder能够访问DOM?
我有Coded-UI测试项目,它引用了解决方案中的其他程序集.某些程序集不会被复制到TestResults/Out目录,而其他程序集则被复制.所有程序集都有Copy Local选项true(不知道它是否真的重要),并且在其他选项中绝对相同.当我从VS2010本地开始测试时,所有程序集都被复制,但在构建服务器上则没有.
如果我使用[DeploymentItem]属性来强制部署这些"顽皮"的程序集,那么它们就会成功部署.
我无法得到它 - 我一直认为,如果你引用程序集(在References部分Solution Explorer),程序集将被复制到TestResults/Out并[DeploymentItem]需要复制一些.xml和其他配置文件.
我正在使用Jenkins作为我的项目CI.在部署新构建时,将运行Coded UI(C#语言)开发的几个自动化测试用例.我在主(windows)上创建了一个MSTest那些测试用例的工作(注意:在cmd下使用MSTest,测试用例可以成功运行)但是看到了以下问题:
调用测试类的初始化方法时出错QuickUI.SmokeTests:Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException:要运行与桌面交互的测试,必须将测试代理设置为作为交互式进程运行.有关详细信息,请参阅"如何:设置测试代理以运行与桌面交互的测试"(http://go.microsoft.com/fwlink/?LinkId=159018)
因此,
1)我需要使用Jenkins slave来运行测试用例吗?
2)如果是这样,如何配置因为dll需要首先复制到slave?
3)是否需要注意任何帐户或jenkins服务配置?
提前致谢.
我在CodedUITest类中有一个TestMethod,它使用HttpClient从本地服务器获取数据,
[TestMethod]
public void CodedUITestMethod()
{
string ServiceURI = "http://localhost:34562/GetTestResult";
HttpClient httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, ServiceURI);
HttpResponseMessage response = httpClient.SendAsync(request).Result;
}
Run Code Online (Sandbox Code Playgroud)
但是,它总是在最后一行抛出异常,如:
{System.UnauthorizedAccessException: Use of networking APIs requires the ID_CAP_NETWORKING capability to be defined in the application manifest.
at MS.Internal.Modern.ClientHttpWebRequestCreator.Create(Uri uri)
at System.Net.WebRequest.Create(Uri requestUri, Boolean schemeOnly)
at System.Net.WebRequest.Create(Uri requestUri)
at System.Net.Http.HttpClientHandler.CreateAndPrepareWebRequest(HttpRequestMessage request)
at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)}
Run Code Online (Sandbox Code Playgroud)
基于必需的清单功能似乎Coded UI项目无法指定应用程序清单.
有谁知道如何指定ID_CAP_NETWORKING功能?
Visual Studio 2015中没有针对UWP的Coded UI项目,我无法在任何地方找到任何文档,说有计划提供支持.
有谁知道是否有计划支持它或有一些替代UI测试框架与Windows Universal一起使用?
我正在使用编码的UI自动化WPF应用程序,我试图在数据网格中找到一行无法找到控件,当我向开发人员询问控件层次结构时,他们说他们在数据中添加了另一个数据网格格.当我记录无法找到控件的控件时,任何人都可以帮助我.
单击第一个切换按钮后,将显示第二行,实际上它不是第二行,在该行中仅添加了数据网格.这是我的代码..
WpfCustom custDetaPre = new WpfCustom(rowGrid);
custDetaPre.SearchProperties.Add(WpfCustom.PropertyNames.ClassName, "Uia.DataGridDetailsPresenter");
//custDetaPre.SearchConfigurations.Add(SearchConfiguration.AlwaysSearch);
custDetaPre.SearchProperties.Add(WpfCustom.PropertyNames.TechnologyName, "UIA");
Run Code Online (Sandbox Code Playgroud)
当我尝试记录第二个切换按钮时,它在上面的自定义控件中,在此自定义控件中放置数据网格.
这是我的总代码:
WpfTable tableGrid = new WpfTable(DashboarWindow);
tableGrid.SearchProperties.Add(WpfTable.PropertyNames.ClassName, "Uia.DataGrid");
tableGrid.Find();
Run Code Online (Sandbox Code Playgroud)
上面的代码用于在表单中查找数据网格.
WpfRow rowGrid = new WpfRow(tableGrid);
rowGrid.SearchProperties.Add(WpfRow.PropertyNames.ClassName, "Uia.DataGridRow");
Run Code Online (Sandbox Code Playgroud)
上面的代码是数据网格的行
WpfCell celGrid = new WpfCell(rowGrid);
celGrid.SearchProperties.Add(WpfCell.PropertyNames.ClassName, "Uia.DataGridCell");
Run Code Online (Sandbox Code Playgroud)
上面的代码是数据网格中的第一行和第一个单元格
WpfToggleButton toglButtonShowall = new WpfToggleButton(celGrid);
toglButtonShowall.SearchProperties.Add(WpfToggleButton.PropertyNames.AutomationId, "ShowDetails");
Mouse.Click(toglButtonShowall);
Run Code Online (Sandbox Code Playgroud)
上面的代码是第一个切换按钮,当我点击此(切换)时,第二行将显示,(第二个切换按钮)但这不是第二行,这是行中的另一个数据网格.为了找到第二个数据网格,在这个自定义控件中有一个自定义控件,只有第二个网格存在.但我试图找到这个自定义控件我得到的控件无法找到异常,自定义控件的代码如下所示.
WpfCustom custDetaPre = new WpfCustom(rowGrid);
custDetaPre.SearchProperties.Add(WpfCustom.PropertyNames.ClassName, "Uia.DataGridDetailsPresenter");
custDetaPre.DrawHighlight();
Run Code Online (Sandbox Code Playgroud)
从上面的代码,我得到了例外.custDetaPre.Drawhighlight()