• 只有 root 手机这条出路

  • tcpdump 表示呵呵

  • 闲聊测试工程师 at 2017年08月02日

    其实也都是 title 而已,都是测试,只是看业务需要什么样的测试,采用最合理的测试方式。

  • STF 二次开发辛酸之路 at 2017年07月31日

    把代码发给你看如果你不懂 SSO 也没用,其实 SSO 没那么复杂,我这里时间比较宽裕,我记得好像就用了一天看了一下 SSO,一天看了下 STF 平台,然后用了两天时间改了一下,然后用了一天测试了一下。先了解 SSO 就行了,把跳转改一下。好久之前写的代码,虽然是我写的,但我记性不好,至于怎么实现,什么是 SSO,别问我为什么,因为我忘了。
    PS:大小括号是不全的,所以只供你参考。

    app.get('/', function(req, res) {
       res.redirect('/auth/mock/')
    })
    
    app.get('/auth/mock/',function(req,res){
    if(!req.cookies.admin_key){
      res.status(200)
            .json({
              success: false
              , redirect: 'http://sso.oa.com/Index/login/appid/1111/'
            })
      }
    else{
     var urlpath='/api?do=getInfo&appid='+1111+'&uid='
      +req.cookies.admin_uid+'&key='+encodeURIComponent(req.cookies.admin_key)
      log.info('urlpath:',urlpath)
      var opts = {
          host: 'sso.oa.com',
          port: 8888,
          path: urlpath,
          method: 'GET',
          headers: {
              'Content-Type': 'application/json'
          }
      }
      log.info('opts',opts)
    var req = http.request(opts,function(res){
      res.setEncoding('utf8')
      res.on('data',function(chunk){
        log.info('aaaa',chunk)
        ssoreturn(chunk)
      })
    })
    req.end()
    
    function ssoreturn(chunk){
      var chunkjson=JSON.parse(chunk)
      var token = jwtutil.encode({
          payload: {
            email: chunkjson.email
          , name: chunkjson.username
          }
        , secret: options.secret
        })
      log.info('chunk',chunkjson)
      log.info('chunk ret',chunkjson.ret)
        if(chunkjson.ret == 1){
          res.status(200)
            .json({
              success: true
              , user_name: chunkjson.username
              , redirect: urlutil.addParams(options.appUrl, {
                    jwt: token
                  })
              })
        }
        else{
          log.info('redirect.......')
          res.status(200)
            .json({
              success: false
              , user_name: chunkjson.username
              , redirect: 'sso.oa.com'
            })
        }
      }
    
    
  • STF 二次开发辛酸之路 at 2017年07月31日

    看不懂 STF 的 auth2.0 的用法,我是直接把 mock 认证改成 sso,sso 无非是个跳转而已。

  • 赞同你的观点😀

  • 好像不是 fork_server 引起的,是-a 参数引起的。adb 那块我没时间去看源码,目前临时解决方案就是使用 1.0.32 版本。

  • 可惜没在深圳。

  • 海淘的都是有钱人啊,我因为海淘不起才选择 ORICO,虽然也很贵。

  • 那你做 STF 也失出了它的意义。不建议这样做。另外模拟器没有序列号!

  • 所有手机的安装写个 uiautomator,然后自动化去点击或者输入。

  • 为什么要使用模拟器?模拟器有序列号?

  • 什么叫 usb 抖动?没有听说过。我不是写了一篇 USB 连接相关的么?

  • 为了提升下逼格要赶紧多写几篇精华贴😘

  • 传说中的机械臂,然而并不觉得是一个很好的方案。

  • 我这边使用的 stf 那套分布式方案,所以是不能重启 ADB。我要保证连接上的手机一定是稳定的,不会出现掉线的问题。目前在 ubuntu 上面没有出现过识别不了手机 serial 的情况。你可以试下 ubuntu 看会不会出现这种问题。在我的 windows 上面也会出现识别不了手机的情况出现,我记得好像是 adb 1.0.31 版本。后面换成新的 1.0.39 版本就不出现了。我之所以发这篇文章目的就是想说没必要去重启 ADB 或者是 USB。

  • 我也想接私活,然而并没有。

  • 不错不错,很实用。

  • 我认为 adb 掉线的原因是电源供电不足,这是其一,后面我在 STF 官网上面看到他们的分析另一个原因是 usb3.0 驱动与 adb 间的问题,只要选择使用 usb2.0 的 usb-hub 就可以了。已经通过实践证明,双管齐下后 usb 都很正常。

  • 说说我这一身病 at 2017年06月28日

    颈椎的可以买那种叫做颈椎牵引床,每天坚持做,三个月左右会好转

  • appium 我们这边的做法是把 appium 所需要安装的东西全部拿出来,自己写了个 uiautomator 脚本来点击的允许安装或者授权安装,并把 appium 所有 adb 操作都注释掉,麻烦的就是需要针对不同手机需要多做几个不同的字段判断。目前大多数手机都能安装相关的应用。

  • 删帖 at 2017年06月26日

    试下把 ‘电源’ 调成高性能模式。

  • 未来,功能测试可能会被 AI 给代替,但我觉得如果 AI 真他妈的做得这么智能,人类都要被替代!!!

  • 1、oppo 只是举个例子,国内还有各大恶心厂商的各种定制,让你我欲仙欲死。我不知道你的平台手机有多大规模,我这边已经有 150 台左右的机器,整得我生不如死。
    2、那个手机初始化环境是,你可能会安装一些测试用的 APK,需要检测 APK 的安装情况,或者 wifi,又或者是有没有 monkey 脚本/自动化脚本在执行,由于我代码能不太行,所以程序经常会挂掉,所以我还做了结束所有测试任务的初台化😂

  • 其实我也是在开发平台的,你这里写的我觉得还有些补充。
    1.手机初始化操作,比如检查手机环境
    2.安装 apk,不同的手机会有不同的安装点击事件,比如 oppo 这个坑爹的手机,要输帐号密码😂 😂
    3.开关 wifi
    4.日志过滤规则
    5.最后还原环境的时候需要做一些删除缓存,还有关 wifi
    PS:最近想做遍历测试,估计一堆坑,我还不敢往里面踩,如楼主有更好的方法可以再写个分享么?