我有一个需要测试的Flex应用程序,我们的QA部门非常喜欢使用某种形式的自动测试工具,如HP的QuickTest Pro(QTP).但是,QTP要求您编写一些自定义代码,如果您希望自动化一些自制组件...不幸的是,我们有一些第三方组件,我们没有源代码,所以我们不能没有真正的自定义代码没有拥有第三方组件的源代码.
是否有任何现有的框架和/或工具可以让我自动化测试,而无需编写可供非程序员使用的自定义代码(即一个不知道指针是什么的QA人)
我已经快速浏览了Flex-Monkey(一个免费的开源软件),这似乎是一个很有前景的项目,但它还处于初期阶段,我很快就需要一些东西(即昨天)
有任何想法吗?
我有一个使用.net技术创建的应用程序/产品.该产品具有GUI,使用Web API(应用程序服务器上的SOAP)连接到数据库.大多数测试都是针对DB中的值执行的,而其他测试可能属于可用性,性能等.因此,要执行的测试中有60-70%要验证数据库中的值是否正确显示在GUI上,其他人测试GUI是否在需求规范中按预期工作.
测试的另一个方面还将是使用DB和GUI测试后端应用服务器接口.因为这将使我们能够确定,如果App Server正在向GUI发送错误值,或者它是具有错误值的DB!
除了以附加下拉菜单项和这些菜单项的附加页面的形式添加新功能外,产品UI的变化不大.
考虑到上述情况,哪种框架更合适?QTP或Selenium或其他商业/开源工具?
(成本不是主要问题,浏览器兼容性或操作系统也不是.系统安装在Windows Server上,并且DB兼容.)
我有VBScript代码,它启动QuickTest Professional,执行一系列QTP测试,并通过电子邮件发送结果.这很好用,但我更喜欢使用具有更好工具支持的语言(例如,一个好的IDE).我目前正在从启动脚本调用.Net库,所以我想知道是否可以使用像C#这样的语言来完成相同的任务.如果是这样,是否有任何好的资源可以解决这个问题?我可以通过谷歌找到关于这个主题的很少的内容,似乎没有关于这个主题的任何其他问题.
为清楚起见,我已经包含了完成大部分工作的例程的代码.这不包括净声明,但failedTestsList并allTestsList是实例System.ArrayList.
编辑:所有QTP文档示例都使用VBScript,但正如您所看到的,代码只是创建QTP对象.我认为这些可以从支持创建这些对象的另一种语言调用.从我的谷歌失败看来,似乎没有人这样做.
Sub ExecuteQTPTest(name)
Dim App, resultsPath
Dim testPath, testResults
testPath = name
allTestsList.Add(name)
Set App = CreateObject("QuickTest.Application")
App.Launch
App.Visible = False
App.Open testPath
SetQTPTestOptions(App)
SetQTPRunOptions(App)
SetQTPWebOptions(App)
App.Folders.RemoveAll
Dim qtpTest, qtpResultsOpt
Set qtpTest = App.Test
Set qtpResultsOpt = CreateObject("QuickTest.RunResultsOptions")
resultsPath = testPath & "\RES1"
qtpResultsOpt.ResultsLocation = resultsPath
qtpTest.Run qtpResultsOpt ''// Run the test
testResults = "Test Status: " & qtpTest.LastRunResults.Status & vbCrLf & _
"Last Error: " & qtpTest.LastRunResults.LastError & vbCrLf …Run Code Online (Sandbox Code Playgroud) 我有一个查询在我们的应用程序中,我们有很多HTML标记.在开发过程中,由于没有要求,许多标签没有给出任何id.现在QA团队想要使用QTP自动化测试用例.在大多数情况下,此工具无法识别,因为它找不到大多数HTML标记的ID.现在要求我们向所有HTML标记添加ID.我想知道是否会对这些标记添加id属性有任何影响.即使是积极的影响也是受欢
我正在尝试编写一个函数,该函数可以从具有2个参数的Function返回多个值.
例如:
function sample_function(arg1,arg2)
''#Some code.................
passenger = list1(0)
name1 = list1(1)
age1 = list1(2)
seatNumber = list1(3)
''#This is an Incomplete function...
end function sample_function
Run Code Online (Sandbox Code Playgroud)
这个名为sample_function的函数有两个名为arg1的参数arg2.当我打电话在我的驱动脚本像值= sample_function(2 Name_person)这个函数,这个函数应该返回我的乘客,姓名1,AGE-1,seatNumber值.
我怎样才能实现这一目标?
编辑(LB): QTP使用VBScript来指定的测试程序,所以我重新标记这VBScript中,VB因为该解决方案可能是在VBScript.
这是我试图使用的XPath:
//div[contains(@class='xyz ng-binding ng-scope') and not(contains(@class = 'ng-hide'))]
Run Code Online (Sandbox Code Playgroud)
我不确定这是什么正确的语法.基本上HTML看起来像:
class="xyz ng-binding ng-scope typeA ng-hide"
class="xyz ng-binding ng-scope typeB ng-hide"
Run Code Online (Sandbox Code Playgroud)
我想选择在HTML或者是情况typeA或者typeB,但没有ng-hide.
我使用QTP/UFT进行应用程序测试.我不得不访问我的oracle DB(11g)进行一些数据库设置(更新记录).
我使用oracle.manageddataaccess.dll(引用myDBWrapper类库项目).
我有下面的dlls
(myDBWrapper是我创建的 - 存在问题的地方)

我的连接字符串:
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<HOST>)(PORT=<PORT>>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<SERVICENAME>)));User Id=<USERNAME>;Password=<PASSWORD>;
Run Code Online (Sandbox Code Playgroud)
问题:
conn.open()抛出错误时的下面代码.它有时会工作并且有时会在同一台机器中抛出"对象引用不设置对象实例"的错误.
conn = New OracleConnection()
conn.ConnectionString = ConnectionString
MsgBox("isnothing? : " & (conn Is Nothing).ToString) 'it is always False. So , not null
conn.Open() ' It throws an error that "Object reference not to set an instance of an object"
Dim cmd As OracleCommand = New OracleCommand(strQuery)
cmd.BindByName = True
cmd.Connection = conn
RowsAffected = cmd.ExecuteNonQuery()
cmd.Dispose()
conn.Dispose()
Run Code Online (Sandbox Code Playgroud)
注意:
这不是资源泄漏.我只是建立一个连接并处理掉.没有其他人连接到数据库.
问题发生 - 当QTP有COM lib时.当我使用它来自动化并使其不可见(QTP.Visible …
摘要
在我的WPF应用程序中,我需要一个带左侧按钮的TabControl,所以我用我想要的布局定义了一个ControlTemplate,它运行正常.
但是,我的测试人员的自动测试工具无法看到选项卡的任何内容,包括当前选定的选项卡.
问题:如何通过自动化测试工具保持我的TabControl可测试,同时仍然定义ControlTemplate?
细节
我正在使用WPF 3.5开发WPF应用程序
我的测试人员正在使用一个名为QTP的自动测试工具
他说他可以使用UISpy.exe测试任何你能看到的内容
示例WPF应用程序(Xaml):
<Window x:Class="TabControlTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Tab Control Test"
Height="300"
Width="300">
<Window.Resources>
<ControlTemplate x:Key="ButtonsOnLeftTabLayout"
TargetType="{x:Type TabControl}">
<DockPanel>
<StackPanel DockPanel.Dock="Left"
IsItemsHost="True" />
<ContentPresenter Content="{TemplateBinding SelectedContent}" />
</DockPanel>
</ControlTemplate>
</Window.Resources>
<TabControl Template="{StaticResource ButtonsOnLeftTabLayout}">
<TabItem Header="Tab 1">
<StackPanel>
<Button HorizontalAlignment="Center">Button 1</Button>
</StackPanel>
</TabItem>
<TabItem Header="Tab 2">
<StackPanel>
<Button HorizontalAlignment="Center">Button 2</Button>
</StackPanel>
</TabItem>
</TabControl>
</Window>
Run Code Online (Sandbox Code Playgroud)
到目前为止我的搜索结果:
(搜索之后我终于找到了答案,但它花了比我想象的更长的时间,而且AutomationPeer的早期发现确实是错误的,所以我把它写成一个SO问题并自我回答,以防它在将来帮助其他人)
我试图在QTP上执行我的Coded UI脚本.首先我为我的Coded UI项目创建了一个dll后来我能够从该dll访问方法,但我无法访问Coded UI测试方法.示例:以下脚本位于VSTS中的C#中
namespace TestProject1
{
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Input;
using System.Windows.Forms;
using System.CodeDom.Compiler;
using System.Text.RegularExpressions;
using Microsoft.VisualStudio.TestTools.UITest.Extension;
using Microsoft.VisualStudio.TestTools.UITesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Keyboard = Microsoft.VisualStudio.TestTools.UITesting.Keyboard;
using Mouse = Microsoft.VisualStudio.TestTools.UITesting.Mouse;
using MouseButtons = System.Windows.Forms.MouseButtons;
using Microsoft.VisualStudio.TestTools.UITesting.WinControls;
using Microsoft.VisualStudio.TestTools.UITesting.HtmlControls;
using Microsoft.VisualStudio.TestTools.UITesting.WpfControls;
public partial class UIMap
{
public int MyInteger()
{
return 9;
}
public string testDll()
{
return "Test DLL Factory";
}
public void add1()
{
MessageBox.Show("Sravan");
}
public void DeletePhoto()
{
WinWindow window = new …Run Code Online (Sandbox Code Playgroud) 我无法让我的测试用例正确运行.
问题在于下面的代码,第一个if语句是准确的.QTP抱怨需要一个对象
For j=Lbound(options) to Ubound(options)
If options(j).Contains(choice) Then
MsgBox("Found " & FindThisString & " at index " & _
options.IndexOf(choice))
Else
MsgBox "String not found!"
End If
Next
Run Code Online (Sandbox Code Playgroud)
当我检查数组时,我可以看到它被正确填充,'j'也是正确的字符串.任何有关此问题的帮助将不胜感激.