我想使用BrowserStack之类的browserfarms来运行UI测试.我们目前正在使用BS通过JsTestDriver运行单元测试.因此,启动服务器,让browserfarm创建的一堆浏览器连接到jstd服务器,然后执行测试.
不幸的是,我无法找到一种方法来编写与jstd一起使用的UI测试(单击某个按钮,键入内容等).
Selenium RC是一个旨在进行UI测试的框架,但它强制使用自己的浏览器实例:Selenium通过作为框架一部分的驱动程序启动自己的浏览器.
我想要的是将JsTestDriver概念与Selenium的UI测试相结合:使用Selenium编写测试,在本地主机上启动Selenium RC服务器,让一堆浏览器连接到在browserfarm上启动的服务器,然后执行UI试验.
这甚至可能吗?有没有其他方法可以使用JSTD运行UI测试?Selenium RC是否无法捕获未使用webdriver启动的浏览器?
提前致谢.
我有一个如下所示的测试:
func testNextButtonDisabled() {
let app = XCUIApplication()
XCTAssertFalse(app.buttons["Next"].enabled)
}
Run Code Online (Sandbox Code Playgroud)
此测试失败,因为除了我自己创建的"下一步"按钮外,键盘返回按钮标有"下一步".此测试失败并显示错误:
UI测试失败 - 找到多个匹配项
如何区分我自己的"下一步"按钮和键盘"下一步"按钮?
我有一个带有ActionMode的RecyclerView,可以通过长按RecyclerView项来激活它.
如何使用Xamarin UI测试在Android中触发长按?AndroidApp包含一个方法TouchAndHold(Func查询)但这个似乎不会触发长按.
这里有人有解决方案吗?
我的代码:
Func<AppQuery, AppQuery> test = c => c.Marked("Test");
app.WaitForElement (test);
app.TouchAndHold (test);
Run Code Online (Sandbox Code Playgroud) 我在我的本地MAC上使用XCode版本7.1(7B91b).并在模拟器iPhone 6(iOS9)上测试我的应用程序.
我已经为我的应用程序创建了单元测试,然后我发现代码覆盖率大约是34%.我决定创建UI测试以增加代码覆盖率.但不幸的是,代码覆盖率没有增加.
我做了一个简单的试验,
使用NavBarContrl,FirstTabelViewController和SecondTableViewController创建项目,将单元测试保持为默认值
离开单元测试,在UI测试中添加一条记录,从第一个表视图控制器导航到第二个.(我期望必须在最终的代码覆盖率报告中突出显示第一个/第二个表视图控制器,对吗?)
确保已启用代码覆盖率
运行测试然后检查代码覆盖率,它是40%
看一下附加的代码覆盖率结果,Second View Controller覆盖率为零!! 虽然当我在观看模拟器时,它确实从第一个视图控制器导航到第二个视图控制器.它不能为零.
有什么我在这里失踪的吗?我试图在Apple官方文档中搜索,但无法找到任何明显的矛盾,以便在UI测试中提供代码覆盖,任何建议?
我有一个集合视图的测试,其工作方式如下:
func testDeleteItem() {
app.collectionViews.staticTexts["Item"].tap()
app.buttons["Delete"].tap()
XCTAssertEqual(app.collectionViews.cells.count, 2)
XCTAssertFalse(app.collectionViews.cells.staticTexts["Item"].exists)
}
Run Code Online (Sandbox Code Playgroud)
点按后,会出现一个带删除按钮的新屏幕.点击按钮时,屏幕自动解除并重新加载集合视图.在UI中,一切都如预期的那样,但我得到两个断言都失败了.在第一个计数中它仍然是3,在第二个项目中它仍然存在.
我是UI测试的新手,我正在尝试将该功能集成到现有项目中.我正在尝试最基本的测试,只是看到框架在行动,但我遇到了一些困难.我已经为我的项目添加了一个新的UI Testing Bundle目标,并且能够运行我的基本测试.但是,当我尝试在我的测试中实际启动应用程序时,我总是会遇到"尝试启动失败"错误.它还说明了"当前流程参考的零令牌".
这是我正在测试的代码:
@implementation SKYPracticeUITesting
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
self.continueAfterFailure = NO;
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication *app = [[XCUIApplication alloc] init];
// In UI …Run Code Online (Sandbox Code Playgroud) 在网络中,我通常使用PerfectPixel chrome扩展程序。它仅允许封面上载设计,反色等。
有什么方法可以在React Native中测试设计?
我正在为我的iOS应用程序构建UI测试套件.我需要在几个不同的设备上测试我的应用程序的功能,但是现在我必须选择我想要的模拟器,运行测试,然后重复.
现在Xcode支持多个并行运行的模拟器,有没有办法同时在多个不同的设备模拟器上运行UI测试?
我正在寻找一个从命令行开始测试的解决方案.
我也想从詹金斯开始.我认为从命令行最简单,所以我将它添加到我的管道配置(Jenkinsfile)
stage('Run UI Tests') {
steps {
bat('"C:\\PATH_TO_MSTEST\\mstest" /testcontainer:PATH_TO_MY_TEST_PROJECT\\bin\\Debug\\MyTests.dll')
}
}
Run Code Online (Sandbox Code Playgroud)当我尝试从cmd启动它时,就像我使用常规单元测试一样,它不起作用.
它说:
Starting execution...
No tests to execute.
Run Code Online (Sandbox Code Playgroud)
我在开始"运行UI测试"阶段之前构建项目.
任何想法如何使其工作?可以在stackoverflow,TestStack的github问题以及网络上的其他荣耀位置找到它
我正在使用Xamarin.UITest在真实设备(带有iOS 12.1的iPhone 6s)上测试Xamarin.iOS应用程序。当我运行少数UI测试时,由于相同的错误(请参阅下文),第一个测试总是会崩溃(无论测试内部发生了什么)。
环境是:
Xamarin.UITest 2.2.7
NUnitTestAdapter 2.1.1
NUnit 2.6.3
Xamarin.TestCloud.Agent 0.21.7
设置是:
[SetUp]
public void Setup(){
this.app = ConfigureApp.iOS
.EnableLocalScreenshots()
.InstalledApp("my.app.bundle")
.DeviceIdentifier("My-iPhone6s-UDID-With-iOS12.1")
.StartApp();
}
[Test]
public void FirstTestThatCouldBeEmpty(){
//But doesn't have to be empty to produce the error
}
Run Code Online (Sandbox Code Playgroud)
产生的错误:
2019-01-17T14:11:20.4902700Z 1-ClearData:> 2019-01-17T14:11:20.4916340Z bundleId:my.app.bundle 2019-01-17T14:11:20.4929580Z deviceId:My-iPhone6s-UDID-使用iOS12.1
2019-01-17T14:11:33.7561260Z 3-LaunchTestAsync:
2019-01-17T14:11:33.7574050Z deviceId:My-iPhone6s-UDID-With-iOS12.1
2019-01-17T14:11:33.9279420Z 5-HTTP请求失败,重试限制达到
2019-01-17T14:11:33.9302300Z异常:System.Net.Http.HttpRequestException:发送请求时发生错误---> System.Net.WebException:无法从传输连接读取数据:对等连接重置。---> System.IO.IOException:无法从传输连接中读取数据:连接被对等方重置。---> System.Net.Sockets.SocketException:连接被对等方重置
<23340a11bb41423aa895298bf881ed68>:0中的System.Net.Sockets.Socket.EndReceive(System.IAsyncResult asyncResult)[0x00012]中的2019-01-17T14:11:33.9322710Z
<23340a11bb41423aa895298bf881ed68>:0中的System.Net.Sockets.NetworkStream.EndRead(System.IAsyncResult asyncResult)[0x00057]中的2019-01-17T14:11:33.9340560Z
2019-01-17T14:11:33.9358740Z-内部异常堆栈跟踪结束-
<23340a11bb41423aa895298bf881ed68>:0中的System.Net.Sockets.NetworkStream.EndRead(System.IAsyncResult asyncResult)[0x0009b]中的2019-01-17T14:11:33.9377100Z
2019-01-17T14:11:33.9398100Z位于System.IO.Stream + <> c.b__43_1(System.IO.Stream流,System.IAsyncResult asyncResult)[0x00000]在<98fac219bd4e453693d76fda7bd96ab0>:0中
2019-01-17T14:11:33.9415720Z at System.Threading.Tasks.TaskFactory
1+FromAsyncTrimPromise1 [TResult,TInstance] …
automated-tests ui-testing xamarin.ios xamarin xamarin.uitest
ui-testing ×10
xcode ×5
ios ×3
xamarin ×2
javascript ×1
jenkins ×1
long-click ×1
nunit ×1
objective-c ×1
react-native ×1
selenium ×1
selenium-rc ×1
swift ×1
testing ×1
teststack ×1
unit-testing ×1
xamarin.ios ×1
xctest ×1