#2 楼 @seveniruby 母鸡噢~ -。- ~我原来以为只是给 stf 用的。。。。。
“注意新建终端 --- 启动 stf,文章中给的例子实际测试无法访问 stf local —allow-remote”
LZ 可能误会这条了哈 ~~~ 这个参数是用来让 STF 允许访问通过 adb connect 命令远程连接的设备,不是远程连接 STF 用的。。。毕竟一般 PC 的 USB 口数量是有限的。
#28 楼 @springs412 试下装下 STAX 再配置下 cfg
#25 楼 @springs412 我使用的场景暂时没你们的那么大哈,所以节点监控什么的,都是没考虑的,以后有机会再慢慢做完善哈。。第二个问题是的 无线只是用来 ADB 连接到设备上用,实际上设备的通讯还是通过具体的端口,只不过途径走的是无线连接。其实就类似手机用 WIFI 访问 IIS 服务器一样
#6 楼 @alex_sheng 你可以看下 appium 的运行日志,它取的 context 名字,其实是用 adb shell 下的命令 cat /proc/net/unix 去正则寻找 WEBVIEW 的 PID 再根据 ps 命令查找 PID 对应的包名做组合的。 所以 你可以自己试试这些命令 或者看下运行的 LOG,一般来说 如果支持的 webveiw 的名字都是你说的规律的
WEBVIEW 的 context 名字不是固定的,是 Appium 根据你的设备具体的 webview 进程来获取的。
你要先获取 。。。
可以封装个通用方法,坐标用设备分辨率来换算。这样就所有设备都能用了
其实。unittest 还有两个类方法,叫 setUpClass 和 tearDownClass
#21 楼 @yuwuhen333 windows 下用 C# 写了个窗体工具,可以批量管理的,linux 下的话 用 sh 脚本管理
#17 楼 @lanxiangtechnical 嗯 无线太不稳了。。。云测不会是这样做的 。。。
#1 楼 @seveniruby “把所有的 android 的 4723 端口反弹到云端的服务器上. 然后用 adb connect 所有的端口, 最后通过一个 appium 来控制 ”。。。这个方法我很有兴趣,能说得稍微想详细点么,目前有大量设备的并发测试需求 相当的头疼,这个方法感觉能解决我的问题,求指教!
在相同的关键字前加上各自的库名和.就可以了
不过。。失败自动截图的时候 会报错。因为两个库的截图方法会冲突
错误提示如下:
org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: '2.43.1', revision: '5163bceef1bc36d43f3dc0b83c88998168a363a0', time: '2014-09-10 09:43:55'
System info: host: 'PC201412042006', ip: '192.168.1.2', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_25'
Driver info: driver.version: RemoteWebDriver
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:180)
org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:352)
org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:441)
com.nd.pad.eci.PadCon.Process(PadCon.java:124)
com.nd.pad.eci.Eci_test.test_stu1(Eci_test.java:91)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
org.testng.internal.Invoker.invokeMethod(Invoker.java:659)
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:845)
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1153)
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
org.testng.TestRunner.privateRun(TestRunner.java:771)
org.testng.TestRunner.run(TestRunner.java:621)
org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
org.testng.SuiteRunner.run(SuiteRunner.java:259)
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
org.testng.TestNG.runSuitesSequentially(TestNG.java:1199)
org.testng.TestNG.runSuitesLocally(TestNG.java:1124)
org.testng.TestNG.run(TestNG.java:1032)
org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:4723 [/127.0.0.1] failed: Connection refused: connect
Caused by: java.net.ConnectException: Connection refused: connect
#4 楼 @mads
两个思路 一个是单独实现一个静态的方法来实现等待
from selenium.webdriver.support.wait import WebDriverWait
@staticmethod
def waitForID(driver, idstr, msg, timeout = 15):
return WebDriverWait(driver,timeout).until(lambda driver: driver.find_element_by_id(idstr).is_displayed(), msg)
还有一个方法是自己定义一个 driver,继承 Appium 的 webdriver.Remote,在 driver 里扩展一些自定义的方法就可以了,后面就可以直接用这个 driver 类来获取对象和调用这个 wait 方法了
from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
class driver(webdriver.Remote):
......
def waitForID(self, idstr, msg, timeout = 15):
return WebDriverWait(self,timeout).until(lambda driver: driver.find_element_by_id(idstr).is_displayed(), msg)
@testly 想请教下为什么我修改 reportNG 的源码后重新打 jar 结果总是打出空的包。提示是这个
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for org.uncommons:reportng:jar:1.1.5
[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 36, column 9
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ReportNG 1.1.5
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ reportng ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\workspace\reportng\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ reportng ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ reportng ---
[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\workspace\reportng\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ reportng ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ reportng ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ reportng ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.829 s
[INFO] Finished at: 2015-05-19T17:49:09+08:00
[INFO] Final Memory: 10M/155M
[INFO] ------------------------------------------------------------------------
标记一个~~ by the way 4 和 5 的链接顺序反了~~
#2 楼 @chenhengjie123 多谢了~~ 头像改了哈~~ 我换了 2.15 的版本试还是一样的错误,杯具~~ 估计要等他们解决了
目前暂时的解决方法是每次要截图的都时候都 switch 回 NATIVE_APP,截屏后再 switch 到 WEBVIEW。。诶 有木有能完美解决的办法呢