• /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js
    
    /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js
    

    但确实不知道怎么改;mac 桌面版 1.2.7

  • python 爬虫的两种方法 at 2018年06月19日
    #! /usr/bin/env python3
    
    
    import requests
    from bs4 import BeautifulSoup
    
    url='http://www.biqukan.com/1_1094/'
    domain='http://www.biqukan.com/'
    r=requests.get(url)
    r=BeautifulSoup(r.content,'html.parser')
    
    
    for e in r.find(attrs={"class":"listmain"}).find_all(href=True):
        r=BeautifulSoup(requests.get(domain+e['href']).text,'html.parser')
        print(r.find('h1').string)
        print(r.find(id="content").text)
    
        break
    
  • 一个登录测试方法 at 2018年06月15日

    以下纯属临时想法,对帖主没有任何不满情绪

    干过一段测试,可能就会对这类问题感到反感;
    我就是这心态,我检讨
    因为关注是脚本/提高效率的技术,或者是在公司如何活下去,而不是设计用例,自己显然已经丧失那种基本技能,
    其他乱七八糟的事情会占据有限的脑容量;

    其实我在想,好多熟悉的场景,为什么没有统一的用例样本库,一个公司没有 (可能大厂应该有),一个行业似乎是没有, 或者有,但不著名,大家都不知道.每到一个新公司,面临新的但是基本换汤不换药的登录页面,用例又要重新写起,搞不好还会明显漏设计用例;

    感到现在大多数工具都是在解决点点问题似,对于 case 的设计,基本不在乎;
    哪怕造一个x-www-form-urlencoded请求数据的全排列工具也好;似乎也是没看见;

    以上纯属临时想法,对帖主没有任何不满情绪

  • 14 楼太搞笑了😂

  • 这样的帖子不用动脑子,随便说,所以回帖有数量;

  • 因为人多,所以会使用附加要求刷掉一些人;好多要求是没太大用;

  • 关于测试驱动开发的讨论 at 2018年06月07日

    这帖子不是我发的,我是 3 楼;
    对我有利,据证 xxx 国也是这样的;
    对我无利,我是特色社会主义,不能跟他们一样;

    您大概是革命导师,
    反正我就是毫无水平.我流氓我不怕。

    理论上来说,测试参与整个软件的生命周期,应该是比开发更了解产品,比产品更了解开发的中间人角色。而且在实际工作中,测试能力强于开发,懂编程知识,比产品更懂业务,才能不被人忽悠的团团转,国外公司基本都是测试强于开发,才能有生存空间,不然测试很容易沦为没人重视的职业,这样的情况有待改善

    看出区别了么

    病人都要死了,你跟他说你为啥你不注意健康,为啥老吃转基因玉米,
    家属不抽你抽谁

  • 源码 没有 passwd 这个形参; 换句话说没有使用密码登录

  • robot framework 自动化测试 at 2018年06月07日

    1.不会 RF,只会点 Se
    2.不成你就用 js 解决, RF 不应该没提供执行 js 的操作方法
    document.ElementById

    最近发现确实是这样,以为自己会了,遇到个 xx 的场景,还是搞不定;
    这就跟测试一样,是个概率事件,最近运气不好,再明显的 bug 都可能漏掉;难免这些工具也有 bug;

  • 😂 靴靴点赞,不用打赏

  • 难道公司没运维么,这都归测试关了

  • 我只试了试 标题,文本正文,附件;
    其他的参数没试;
    命令行执行没改

  • 我在想 有人会的不多,但是挣得比我多;
    有人几乎没事干,占着领导的位置把活儿分了,把手下的绩效添了,这就是 ta 的工作;
    有人天天加班,混的比狗还惨,还在努力;

    不管是 ta 或 ta 靠什么上位,只要比你舒服,就是 ta 的能力; 这就是 社会;
    靠良心吃饭的人只能吃亏了,这就是现实;
    但是我得把手里的活儿干完;

  • curl 'http://sfz.uzuzuz.com/?region=110101&birthday=19900307&sex=1&num=5' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8' -H 'Referer: http://sfz.uzuzuz.com/?region=110101&birthday=19900307&sex=1&num=5' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8' -H 'Cookie: UM_distinctid=163ca3e463b283-0b739ed36f3f9-336e7707-fa000-163ca3e463c890; CNZZDATA1261470196=1943457848-1528102451-%7C1528102451; Hm_lvt_11b7d968fe1705691cfbabf79220a2ea=1528106469; Hm_lpvt_11b7d968fe1705691cfbabf79220a2ea=1528106469' --compressed

    祝你成功

  • 帖主这么发帖会被人骂的: 说你的存在阻碍了社会进步;
    但是反过来想,每个人都面临这样的问题,谁都有跟不上发展的时候;
    所以有时发现,有些领导招聘只能引入水平更差的人,因为另外一部分在面试时卡掉了;
    太有有能力的人基本不太听话,太听话的的基本没有大能力;

    除非你已经做大;反正如果你不能用非技术手段上位,只能靠技术;
    都靠不上的话,那就只能忍着了;

  • Python 装饰器的前世今生 at 2018年05月28日

    装饰器对我来说是个难题

    之前看到有人这么写代码

    @session(method='post',url='http://0.0.0.0:80/post',data={},expected=100)
    def test1(self,status_code,expected):
        self.assertEqual(status_code,expected)
    

    自己攒了一个,本地有 httpbin

    import unittest
    class A(unittest.TestCase):
    
        def session(**kw):
            def _wrapper(func):
                def inner(self):
                    if kw.get('method')=='post':
                        r=reqs.post(kw.get('url'),kw.get(data))
                    elif kw.get('method')=='get':
                        r=reqs.get(kw.get('url'))
                    func(self,r.status_code,kw.get('expected'))
                return inner
            return _wrapper
    
    
        @session(method='post',url='http://0.0.0.0:80/post',data={},expected=100)
        def test1(self,status_code,expected):
            self.assertEqual(status_code,expected)
    
        @session(method='get',url='http://0.0.0.0:80/get',expected=200)
        def test1(self,status_code,expected):
            self.assertEqual(status_code,expected)
    
    unittest.main()
    

    看起来很高大上.但感觉用起来不划算; 不知道怎么和 parameterized组合起来用;只能说自己水平菜

    然后看坛子里有人 selenium 错误截图,于是攒了一个

    import unittest
    from selenium import webdriver
    class B(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            B.dr=webdriver.Firefox()
    
        def get_screenshot_as_file(func):
            def wrapper(self):
                try:
                    func(self)
                except:
                    self.dr.get_screenshot_as_file('./{}.png'.format(
                        func.__name__) )
            return wrapper
    
        @get_screenshot_as_file
        def test1(self):
            self.assertTrue(True)
            self.dr=B.dr
            self.dr.get('http://www.baidu.com')
            assert False
    
        @get_screenshot_as_file
        def test2(self):
            assert True
    
        @classmethod
        def tearDownClass(cls):
            B.dr.quit()
    
    unittest.main()
    

    那块异常处理还应该做的好些,比如收集日志等

  • 测试工程师的职责 at 2018年05月26日

    完全不能统一
    工作派出来,要看具体什么工作.
    如果是一次性的,不能保证自己把脚本搞出来或是恐怕要很长时间完成,手工就可以;
    但不耽误你在空闲时间用代码再搞一遍
    非要占着手工能完成的时间在那练习...,至少没有一个经理愿意听到你上班是为了练手的

  • 这真是个水贴。。。果然是灌水

  • 我的 shell 是够烂的。不会。。。

  • C/S 客户端启动性能测试 at 2018年05月23日

    我理解薛定谔的猫,但我不理解牛顿三定律;你有何感想

    • 想看下装饰器是怎么写的
    • requests.post 有个 json 型参,可以直接传 dict;
  • 我的问题点是感觉这个工具帽子太大;
    想看的是 用这个工具后得出测量结果,是如何分析的;否则, 和开发改完后在手机上直接点点看看反应 有何本质区别?

  • 没看懂这个工具能解决 缘由;感觉是主站工具使用说明摘抄;
    挂上代理,看看慢的那个接口优化后同样的图片传输是否真的压缩了,
    压缩后手机反应如何;
    另外你们敢在正式服务器上搞着东西么

  • 他不放弃让他出个方案啊;竟是这样的领导,没方案,没脑子,就要结果,你去解决, 放 kpi 里;

    filder 的脚本能会写的人就不多, 我这本子安装太费劲,放弃.

    基本方案就俩

    在客户端那 mock,这个难度真的比较大,要能搞定基本可以当开发去改 bug;
    做个假的服务器
    - 各种语言可以实现,相当于开发了一个后台
    - 然后我说的 charles locate,是直接返回结果,不是在中间修改后返回,只修改的话还是需要真的 server

    然后感谢楼下说的mitmdump,最近客户端有 bug,用 charles 修改请求后定位,但手要快;
    filder 安装麻烦,还要学新的脚本.
    找到了相关的一个文,https://juejin.im/post/5ac9ea6d518825364001b5b9,喜欢的人可以去看

  • charles 有个 locate 功能