• 我针对的他说的最后一条,百毒出来那个……

  • TPS 还能分 LR 和 JMeter?搞笑的吧……tps 是系统的 transaction per second,跟啥工具没有一毛钱关系~
    throughput 分网卡的吞吐量和系统吞吐量,一般意义上都用来度量网卡,单位时间内经过的字节数
    系统吞吐量主要是指 CPU 从存储中读取的字节数——也可以看出来,没有程序问题的前提下,存储的 IO 效能是主要的性能瓶颈,90% 的性能优化最终都要落实到 IO 效率的优化上~

  • 谈一谈你的职业规划 at 2017年10月23日

    我听领导的,领导让我干啥我干啥;
    看公司需求,公司觉得我干啥合适我就干啥😂

  • 旷世的孙剑牛逼啊,年薪千万,Alpha Zero 的核心算法也是孙牛的杰作~

  • 那以培训的名义付比较好,如果开源转商用,还是有些坑的

  • 我倒要看看哪位自己提供纯自己开发的,不会被开源协议约束的平台能拿得出手😏

  • 感觉你们每个人每天都参加面试,太乱了……@Lihuazhang @seveniruby

  • selenium 定位问题 at 2017年10月19日

    driver.findElements(By.cssSelector(".myTips.after"));

  • 我的理解:

    • selenium1 基本全部是基于 js 在浏览器上的执行
    • selenium2/3 是基于浏览器服务和客户端消息接口通讯的模拟、控制实现的浏览器行为的模拟和控制
    • selenium2 的时候 selenium rc 模式和 webdriver 共存,selenium3 的时候把一代的 selenium rc 阉割掉了,但是保留了对 js 调用的支持,这个没准哪天也会被阉割掉
  • 缺陷增长模型 at 2017年10月19日

    精英不用管,自组织、自管理啊,领导都是端茶送水的角色😂

  • 赞,啥牌子、型号的灯呢?
    话说,不能贴代码么,非要截图

  • 缺陷增长模型 at 2017年10月19日

    这我知道,好像后面又跳了

  • 缺陷增长模型 at 2017年10月19日

    最后还是要鸣谢一下,当年 marvell 测试经理张昊翔,现在去哪里也不知道了
    做这些还是来自他 chinatest2012 的演讲,可惜现在 TID 大会演讲的水平已经不复当年了,说明测试真的就那么点事可说,技术发展都是被动的,而非领跑 IT 行业~

  • 缺陷增长模型 at 2017年10月19日

    只是管理效率、便利性和准确性的提升,对于一线帮助不大,你可以那这个数据透视的结果要求他们(包括开发、产品、测试)在哪里加强测试、在什么阶段要抓紧投入等等,而想要他们自己理解这些,估计就比较难了,除非是精英团队……而精英团队才不会用这个咧~

  • case when 写法,时间换空间,牺牲 CPU 时间用于判断和计算
    left join 写法,空间换时间,两个查询结果在内存中 sort

    附 SQL:

    SELECT 
      a.classid,
      IFNULL(a.male_num, 0) AS male_num,
      IFNULL(b.famale_num, 0) AS famale_num
    FROM
      (
        (SELECT 
          classid,
          COUNT(*) AS male_num 
        FROM
          student 
        WHERE gender = 'M' GROUP BY classid) a 
        LEFT JOIN 
          (SELECT 
            classid,
            COUNT(*) AS famale_num 
          FROM
            student 
          WHERE gender = 'F' GROUP BY classid) b ON a.classid = b.classid
      ) 
    GROUP BY a.classid ;
    
  • 我最多问印象最深刻的 BUG,最难这种我觉得是伪命题
    BUG 找到了,难道不解决?解决了不知道什么原因、怎么解决的?都知道了还有什么难的,了解过后都不会觉得多难~
    要说难这种情况,大多在测试开发自己开发自己测试,搞 1、2 天找不出问题根因,那才叫难呢……虽然最后很可能只是一个引号敲错了😂

  • 可惜规则不能定制化,全都按照阿里的路子来,有点不大灵活……确切的说是很不灵活

  • https://testerhome.com/topics/10451

    realtime-report 和 reportng 是我自己改写过的

  • 不必为了一句话之失而拼命挽尊吧,阁下是谁我猜得出七八分,或许你还可能面试过我,跟我讨论 MBT 的核心难点在于脚本如何生成并且不等回答就直接否定说你们肯定解决不了这个问题的那位?阁下网上网下语气倒是一致得很啊。不过不得不承认招行的技术还是超级厉害的~

    我保险、银行、证券行业算是都混过,像招行这个技术水平的真的没有,所以,不用揪着一句玩笑话就上火,就算是真做这个鬼,肯定也不敢卖给你们的😏

  • 3.3+?

  • 干嘛明年跳,现在就来啊,本司欢迎你,我这人就不怕 XDJM 们弱,就怕不想学、不会学

  • 用 chrome 打开调试工具(F12),进入 console,输入:

    alert(window.document.getElementById("mobile_file_url").getAttribute("value"));
    如果你的网页有用jquery那就这样写
    alert($("#mobile_file_url").val());
    在jquery的前提下如果这一句没结果那就试试
    alert($("#mobile_file_url").eq(0).val());
    如果有了结果那就说明id使用重复js或者jsp编译就应该有报错才对可能被IDE给忽略掉了找开发解决
    

    如果以上操作,第一步弹出窗口有内容(就是那个 zip 的 url),那说明文档结构是没问题的,如果最终没有结果,那么还是要找开发去看,到底用了什么控件,是 flash 啊还是 SWFUpload 之类的什么鬼~

  • type=“hidden” 只是一个 “貌似为了” 防跨站攻击的隐藏域,用来记录一个随机串的吧,肯定于此无关,因为这根本不是 form 的属性,而是 form 的一个 childobject 而已

    不妨换 xpath 试一下,如果 OK 了,说明前端有小 bug 或者结构太过复杂导致按照 id 无法查询到

  • 单步等待的 API 封装,一般不赞成这么用

    /**
       * Description: set element locate timeout.</BR> 
       * 内容描述:设置对象查找超时时间.
       *
       * @param seconds
       *            timeout in timeunit of seconds.
       */
      protected void setElementLocateTimeout(int seconds) {
          driver.manage().timeouts().implicitlyWait(seconds, TimeUnit.SECONDS);
      }
    
      /**
       * wait for the element visiable in timeout setting</BR> 
       * 在指定时间内等待,直到对象可见。
       *
       * @param by
       *            the element locator By
       * @param seconds
       *            timeout in seconds
       */
      protected boolean waitForElementVisible(By by, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.visibilityOfElementLocated(by)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }
    
      /**
       * wait for the element visiable in timeout setting</BR> 
       * 在指定时间内等待,直到对象可见。
       *
       * @param element
       *            the element to be found.
       * @param seconds
       *            timeout in seconds.
       */
      protected boolean waitForElementVisible(WebElement element, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.visibilityOf(element)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }
    
      /**
       * wait for the element not visiable in timeout setting</BR>
       * 在指定时间内等待,直到对象不可见。
       *
       * @param by
       *            the element locator.
       * @param seconds
       *            timeout in seconds.
       */
      protected boolean waitForElementNotVisible(By by, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.invisibilityOfElementLocated(by)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }
    
      /**
       * wait for the element present in timeout setting</BR> 
       * 在指定时间内等待,直到对象出现在页面上。
       *
       * @param by
       *            the element locator.
       * @param seconds
       *            timeout in seconds.
       */
      protected boolean waitForElementPresent(By by, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.presenceOfElementLocated(by)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }
    
      /**
       * wait for the element clickable in timeout setting</BR>
       * 在指定时间内等待,直到对象能够被点击。
       *
       * @param by
       *            the element locator By
       * @param seconds
       *            timeout in seconds
       */
      protected boolean waitForElementClickable(By by, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.elementToBeClickable(by)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }
    
      /**
       * wait for text appears on element in timeout setting</BR>
       * 在指定时间内等待,直到指定对象上出现指定文本。
       *
       * @param by
       *            the element locator By
       * @param text
       *            the text to be found of element
       * @param seconds
       *            timeout in seconds
       */
      protected boolean waitForTextOnElement(By by, String text, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.textToBePresentInElementLocated(by, text)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }
    
      /**
       * wait for text appears in element attributes in timeout setting</BR>
       * 在指定时间内等待,直到指定对象的某个属性值等于指定文本。
       *
       * @param by
       *            the element locator By
       * @param text
       *            the text to be found in element attributes
       * @param seconds
       *            timeout in seconds
       */
      protected boolean waitForTextOfElementAttr(By by, String text, int seconds) {
          try {
              setElementLocateTimeout(seconds);
              WebDriverWait wait = new WebDriverWait(driver, seconds, stepTimeUnit);
              return wait.until(ExpectedConditions.textToBePresentInElementValue(by, text)) != null;
          } finally {
              setElementLocateTimeout(maxWaitfor);
          }
      }