我们正处于一个大型项目的初始阶段,并且已经决定某种形式的自动化UI测试可能对我们有用,但还没有确切地说明它是如何工作的......
主要目标是自动执行应用程序的基本安装和运行,因此如果开发人员导致严重破坏(例如:app将无法安装,网络将无法连接,窗口将无法显示等)测试人员不必浪费时间(并且烦恼)安装和配置损坏的构建
第二个目标是在处理重复性任务时帮助测试人员.
我的问题是:谁应该创建这些类型的测试?我们团队中隐含的假设是测试人员会这样做,但我在网上读到的所有内容似乎总是暗示开发人员会创建它们,作为一种"扩展单元测试".
一些想法:
开发人员似乎处于更好的位置,因为他们知道控件ID,类等,并且可以更好地了解应用程序的工作方式
测试人员的优势在于不知道应用程序是如何工作的,因此可以生成可能更有用的测试
我用IronRuby和White编写了一些初始脚本.这非常有效,并且足够强大,可以完成任何事情,但是你需要能够编写代码来编写UI测试
我们尝试过的所有自动化UI测试工具(TestComplete等)似乎都非常复杂和脆弱,虽然测试人员可以使用它们,但它们需要大约100倍的时间并且它们不断遇到"意外复杂性"由UI测试工具引起的.
我们的测试人员无法编写代码,虽然他们非常聪明,但当我建议测试人员可能编写简单的ruby脚本时,我所得到的都是有趣的(尽管所说的脚本比读取和编写的脚本容易大约100倍.按钮和数据网格似乎是自动UI测试工具的标准).
我非常感谢在开发人员和测试人员团队中尝试过UI自动化的其他人的反馈.谁做了什么,并且做得好吗?提前致谢!
编辑:有问题的应用程序是一个C#WPF"富客户端"应用程序,它使用WCF连接到服务器
我很难让Robotium在基于gradle的Android Studio上工作,我找不到办法
这是我的build.gradle文件
buildscript {
dependencies {
repositories {
mavenCentral()
mavenLocal()
}
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
/* maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
}*/
}
sourceSets {
testLocal {
java.srcDir file('src/test/java')
resources.srcDir file('src/test/resources')
}
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 17
}
sourceSets {
instrumentTest.setRoot('src/test')
}
}
dependencies {
compile 'com.android.support:support-v4:13.0.+'
// Dependencies for the `testLocal` task, make sure to list all your global dependencies here as well
testLocalCompile 'junit:junit:4.11' …Run Code Online (Sandbox Code Playgroud) Xcode 7†有一种直接测试UI的新方法,包括新的测试目标"iOS UI Testing Bundle"(或"OS X").

在UI测试目标中,似乎没有对构成您的App的模型或类的内置访问.例如[UIApplication sharedApplication],您的UI测试无法调用.这意味着"应用程序测试"和"UI测试"存在于可能不可逾越的鸿沟中.
如前所述这里:
问题是Xcode的UI测试不允许访问实际的应用程序.
问题:
xcodeproj在github上工作.†在撰写本文时,测试版软件.
每个人都使用Robotium进行GUI测试.
你能告诉我Robotium可以做什么Android原生测试框架吗?据我所知,Robotium可以用作黑盒测试,所以我不需要了解应用程序资源.还有什么?
我将Jenkins配置为Selenium Grid,将一些Jenkins节点配置为Selenium Nodes(由Jenkins Selenium插件控制).
问题是UI测试的分辨率非常低(1036 x 780),我们需要(1600x1200).
由于Jenkins启动了服务,因此打开RDP会话无济于事.
如何更改可与桌面交互的Windows服务的默认分辨率?
有没有办法在Swift 2.0中编写自动UI测试时模拟请求.据我所知,UI测试应该独立于其他功能.有没有办法模拟服务器请求的响应,以便测试依赖于响应的UI行为.例如,如果服务器已关闭,则UI测试仍应运行.快速示例,对于登录,如果密码失败则模拟,然后UI应显示警报,但是,如果登录成功,则应显示下一页.
我们一直在计划使用Selenium对我们的Web应用程序进行UI测试.我们现在有了第二个想法.据我所知,Android和iOS设备的网络驱动程序不使用用户将使用的实际浏览器.相反,他们使用WebView,它可能与实际浏览器类似,也可能不同.我已经看到了针对Android的各种报告,这些报告似乎表明WebView的行为与内置浏览器和Chrome不同,后者现在是某些设备的默认设置.
您是否发现使用Selenium在实际硬件设备上进行测试是否值得?它比使用模拟器更准确还是更准确?您发现什么是使用自动化测试的最有效方法,让您觉得您的Web应用程序可以在您支持的所有硬件平台上正常运行?
在我们的案例中,我们需要在PC,Mac,平板电脑和手机上支持最新版本的主流浏览器.Selenium在PC测试中运行良好,但我对平板电脑和手机测试很关注.我们正在考虑是否应该自己推广或使用类似uitest.js的东西,我们实际上可以在实际的设备浏览器上运行.
我有一个基类ScriptBase,它有一个名为的虚函数MyTestInitialize().当我打电话MyTestInitialize()从派生类,则该值testContextInstance是null.这有什么解决方案吗?请帮忙,因为我是自动化测试的新手.提前致谢
[CodedUITest]
public class ScriptsBase
{
public ScriptsBase()
{
}
private static TestContext bingTestContext;
public static TestContext BingTestContext
{
get { return ScriptsBase.bingTestContext; }
set { ScriptsBase.bingTestContext = value;}
}
#region TestInitialize
//Use TestInitialize to run code before running each test
[TestInitialize()]
public virtual void MyTestInitialize()
{
Browser.CloseAllBrowsers();
BingTestContext = testContextInstance;
}
#endregion
#region TestCleanup
//Use TestCleanup to run code after each test has run
[TestCleanup()]
public virtual void MyTestCleanup() …Run Code Online (Sandbox Code Playgroud) 有人试图在新的Xcode 7 UI测试中包含模拟数据吗?
我想对使用Jetpack Compose 的Activity 进行 UI 测试。该文档提供了有关如何使用两种变体测试此类屏幕的一些信息:
@get:Rule val composeTestRule = createComposeRule()
Run Code Online (Sandbox Code Playgroud)
如果我不需要活动本身运行并且只想测试我的可组合项或
@get:Rule val composeTestRule = createAndroidComposeRule<MyActivity>()
Run Code Online (Sandbox Code Playgroud)
如果我确实需要这项活动。
在第二种情况下,我如何将带有 Extras 的 Intent 传递给活动?
我试过了:
@Before
fun setUp() {
composeTestRule.activity.intent = Intent().apply {
putExtra(
"someKey",
123
)
}
}
Run Code Online (Sandbox Code Playgroud)
但活动中的意图额外内容仍然为空。