• 大佬,springboot 的应用启动 trace/start 之后,执行了一些操作,接着请求 trace/list, 总是返回空数组,是因为我使用 agent 的方法不对,还是这个 agent 不支持 springboot?具体步骤为:

    1. 启动 springboot:java -javaagent:build/libs/remote-debug-agent.jar=includes=com.lyb.fileserver,apiport=8098 -jar D:\pyWorkspace\HTTPFTP\target\fileserver-version-1.1.jar
    2. 发送请求:trace/start 3.执行 springboot app 4.发送请求:trace/list?coverage=true
  • 能远程码

  • 今年很多行业都压力很大,而我们 IT 行业除了工作压力之外,我觉得可能和很多 IT 的内敛性格很有关系。不管如何,健康真的很重要,每天尽量抽时间锻炼,尽量合理休息。

  • 年龄有要求吗?

  • 不知道分享式视频能否开源?

  • Appium Server 的健壮性问题 at 2016年06月10日

    楼主是不是每个 case 都重新启动 App 呢?如果是的话,我之前也是因为这样,二十个 cases,在 Android 上跑完十五六个 ADB server 就挂掉了

  • #2 楼 @tspring @lonie233 确实如此,加上 test 开头就可以了,没用过 Junit,莫要见怪,谢谢!

  • #16 楼 @chenhengjie123 再奋战了一天时间,问题还是没有解决,因为我的 cases 有的需要登录,有的不需要登录,以返回方式处理,感觉太不理想了。尝试了 Appium 的 closeApp 和 launchApp 方法,但是运行时间超过十几分钟之后,同样会发生 Appium server 连接不上的问题,并且报了 404 错误,如下:

    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.562 ms - 40
    info: --> POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/close {}
    info: <-- POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/close 404 1.125 ms - 40
    info: --> GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot {}
    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.788 ms - 40
    info: --> POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/launch {}
    info: <-- POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/launch 404 1.307 ms - 40
    info: --> GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot {}
    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.573 ms - 40
    info: --> POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/close {}
    info: <-- POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/close 404 0.545 ms - 40
    info: --> GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot {}
    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.969 ms - 40
    info: --> POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/launch {}
    info: <-- POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/launch 404 0.598 ms - 40
    info: --> GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot {}
    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.574 ms - 40
    info: --> POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/close {}
    info: <-- POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/close 404 0.538 ms - 40
    info: --> GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot {}
    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.419 ms - 40
    info: --> POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/launch {}
    info: <-- POST /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/appium/app/launch 404 0.595 ms - 40
    info: --> GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot {}
    info: <-- GET /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904/screenshot 404 0.591 ms - 40
    info: --> DELETE /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904 {}
    info: <-- DELETE /wd/hub/session/64ef1ea4-bbf1-4621-9d86-d5b341faa904 404 0.667 ms - 40
    info: [debug] Didn't get a new command in 300 secs, shutting down...
    info: [debug] Trying to stop appium but there's no session, doing nothing
    info: [debug] We shut down because no new commands came in

    感觉 Appium 太难用了,慢还不是主要障碍。考虑用 Robotium 做 Android 的 automation 了。谢谢@xubin98246 @sanlengjingvv 关注和帮助

  • #14 楼 @chenhengjie123 界面方式,回退使用的是 WebDriver 的 back() 吗?

  • #10 楼 @sanlengjingvv 感觉,重启 appium server 这种方式,有点奇怪。现在研究的结果就是,我每个 case,都会 new 一个 AppiumDriver,就是说每个 case 都会重新和 Appium Server 创建一个新的 session,估计是这种频繁创建 session 的操作导致了 adb 和 Emulator 失去了连接。我再想想有什么办法先,谢谢。

  • #11 楼 @chenhengjie123 teardown 我还是知道的,case 的结束有可能是 pass,有可能是 failed,那回退到开始界面所需的步骤就是不确定了呀

  • #8 楼 @chenhengjie123 如果不频繁开关 app,每个 cases 之间的影响岂不是很大,这样子上面一个 case 失败了,界面停留在 failed case 当前界面,其他 case 如果不是从当前界面继续,该怎么办?请前辈赐教,谢谢。

  • #6 楼 @chenhengjie123 @xubin98246 尝试了用 override-session flag, 每次重新打开 APP 的时候,都会覆盖掉之前的 appium session,总共 17 个 cases,每次运行至第七个的时候,就开始 adb 个 Emulator 连接不上了。如果是 adb 本身的稳定性问题,那 Appium 依赖于 ADB 来执行,岂不是下策?看见 appium 在国内这么流行,不知道各位前辈如何解决这个问题?

  • #3 楼 @xubin98246 你好,刚才跟一个使用 Robotium 的同事讨论一下,他说 case 里面频繁的 Close Application 和 Open Application,就会导致 adb 运行过程中自动关闭了,不知道是否由此一说。PS:我每个 cases 都会重新打开 app,结束后,就会关闭 app,这种思路不知道是否有问题?谢谢

  • #3 楼 @xubin98246 嗯,我找到了,Desiredcapabilities 里面设置,现在设置为 120 了。但是连续运行 cases 之后,大概十几分钟,都会导致某个 step block 大概 10 分钟,然后就会 adb devices 找不到设备了,接着所有剩下的 cases 都 failed 了。

  • #1 楼 @xubin98246 newCommandTimeout 这个是 function 吗?我在 AppiumDriver 上没看到有这个 function 的。另外我详细查看发现,当发生上面接受命令超时的时候,ADB devices 找不到当前启动的虚拟机了,但实际是启动的,好奇怪

  • 接口测试的一些感悟 at 2015年12月10日

    #40 楼 @chenhengjie123 Soap UI free 版本也是可以的,用 groovy 做 data driven 和 dynamic response check,或者你可以先用 Java 做好扩展,在 soap ui 上用 groovy 简单调用就行

  • AppiumLibrary Java 版 at 2015年12月10日

    #1 楼 @anikikun 不是,这个我知道,我的意思是用 appium Java 版本做 RobotFramework 的 keyword library, 现在 robotframework.org 上只有 Python 写了的。不过刚才在 github 上已经看到有人初始化了一个 Java 版本的 AppiumLibrary-Java 的 project,只是还没有出事代码,看了账号好像是腾讯的员工,我在 github 上找他看看。谢谢