• QATools-iOS-日志 / 屏幕获取 at 2019年01月25日

    没有吧.

  • 源码已公开

  • QATools-Android-性能监控 at 2018年12月29日

    哦哦,我大概知道了..
    我忘加-b,只会显示前面 cpu 高的,太低的数据就被丢弃了.
    你把其他应该干掉,你这个应该运行在前台,然后就应该能排到前面吧,然后就应该有了.

  • QATools-Android-性能监控 at 2018年12月28日

    获取出错造成的,你用 top -n 1 看看能显示你的 app 不
    源码你看看本文开头的那个文章.

  • 这个你看看是不是你其它地方启动了 adb 服务,但不是用 D:\Android\android-sdk/platform-tools/adb.exe 这个目录下的 adb 启动的,造成了冲突.
    where adb/which adb 检查下你环境变量配置的 adb 是否是该路径.
    或者先 adb kill-server 把当前 adb 干掉,然后启动工具,让工具先运行试试
    另外,某些助手的修改过的 adb 可能占用端口,导致冲突

  • QATools-Android-性能监控 at 2018年12月28日

    哦哦,你用的 mac 系统哇,这个给 ios 用的,android 可以不管.
    如果要用需要安装 libimobiledevice.
    如何安装,看这个帖子https://testerhome.com/articles/16867
    系统设置,就是更多->设置

  • QATools-Android-性能监控 at 2018年12月28日

    sdk 目录里面有没有 platform-tools 目录,这个目录有没有 adb 文件.
    只要配置一个有 adb 文件的文件夹就行

  • 你试试以管理员身份访问,兼容模式运行
    或者把这个目录的权限和 jre 跟你登录的用户适配下.
    这个可能是没有连接权限报错,跟程序没关系

  • QATools-Android-性能监控 at 2018年12月28日

    理论上支持那几个命令的设备都支持,对不同版本的 top,ps 等进行了适配的
    我这里的 8.0 设备是可以的,9.0 没有用过...

  • 本来想创个专栏就好,不过现在只能一个账号一个,就先这样吧.后期有重大更新或新增功能才更新.

  • 不要放到路径中有空格括号中文什么之类的目录下,不然可能有点兼容问题.

  • QATools-Android-性能监控 (二,20181227) 工具点击开始监控后,一直会获取值,间隔取决于那几个命令中执行时间最长的那个命令.

  • Done.

  • QATools-Android-性能监控 at 2018年12月27日
  • 什么时候能开多个专栏啊...😑 😑 😑

  • 框架源码放上去啦😀 😀 😀

  • 尴尬,我好像在专栏一小时发 10 篇被封了.
    求解封,原来的文章我把删了...

  • 可以啊.求开通..

  • 已更新

  • 升级了 server,把 client 等等也都升级到最新.

  • 脚本不用代码写,感觉很多场景不好实现,并且维护起来也不简单.
    我自己也写了个类似基于 appium 的 GUI 框架,实现功能很多,但是还是有很多缺点.

  • 目前发现是在应用启动后立刻执行会大概率出现上述情况,所以启动后等待几秒后再查找来规避...
    对于权限有倒计时并且有点慢的手机,就可能出现来不及点权限的情况.

  • org.openqa.selenium.WebDriverException: java.io.IOException: unexpected end of stream on Connection{0.0.0.0:4723, proxy=DIRECT hostAddress=/0.0.0.0:4723 cipherSuite=none protocol=http/1.1}
    Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
    System info: host: 'autodeMac-mini.local', ip: '10.1.5.179', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.2', java.version: '10.0.1'
    Driver info: driver.version: RemoteWebDriver
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:233) ~[java-client-6.0.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543) ~[client-combined-3.12.0.jar:4.4.6]
    at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:46) ~[java-client-6.0.0.jar:?]
    at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) ~[java-client-6.0.0.jar:?]
    at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) ~[java-client-6.0.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.getPageSource(RemoteWebDriver.java:429) ~[client-combined-3.12.0.jar:4.4.6]
    at com.helper.AndroidInfo.getPageSource(AndroidInfo.java:691) [bin/:?]
    at com.helper.AndroidInfo.waitForNewWindow(AndroidInfo.java:649) [bin/:?]
    at com.appium.AndroidOp.findElementBy(AndroidOp.java:280) [bin/:?]
    at com.appium.AndroidOp.HandlePermission(AndroidOp.java:929) [bin/:?]
    at com.test.android.ver900.General.skipGuide(General.java:67) [bin/:?]
    at com.test.android.ver900.功能遍历.beforeTest(功能遍历.java:37) [bin/:?]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[?:?]
    at com.task.FactoryScene.RunTest(FactoryScene.java:156) [bin/:?]
    at com.task.SceneTask.runScene(SceneTask.java:158) [bin/:?]
    at com.task.SceneTask.runTask(SceneTask.java:129) [bin/:?]
    at com.task.TaskRunner.runTask(TaskRunner.java:98) [bin/:?]
    at com.viwer.scenetask.MainTaskUI$StartTaskThread.run(MainTaskUI.java:361) [bin/:?]
    at java.base/java.lang.Thread.run(Thread.java:844) [?:?]
    Caused by: java.io.IOException: unexpected end of stream on Connection{0.0.0.0:4723, proxy=DIRECT hostAddress=/0.0.0.0:4723 cipherSuite=none protocol=http/1.1}
    at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:205) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.RealCall.execute(RealCall.java:77) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:105) ~[client-combined-3.12.0.jar:4.4.6]
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:155) ~[client-combined-3.12.0.jar:4.4.6]
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:218) ~[java-client-6.0.0.jar:?]
    ... 21 more
    Caused by: java.io.EOFException: \n not found: limit=0 content=…
    at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:227) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:212) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at okhttp3.RealCall.execute(RealCall.java:77) ~[selenium-server-standalone-3.11.0.jar:9.4.7.v20170914]
    at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:105) ~[client-combined-3.12.0.jar:4.4.6]
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:155) ~[client-combined-3.12.0.jar:4.4.6]
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:218) ~[java-client-6.0.0.jar:?]
    ... 21 more

  • 有遇到相同问题的同学欢迎一起探讨

  • 动态页面就很慢