• locust 实战 at 2021年05月06日

    感谢 帮大忙了!但是有一丢丢疑惑:
    我的队列读取 csv 里 100 条数据,总用户量=100,每秒启动 10 个用户。
    这时在空队列的时候直接 exit(0) 结束主进程,最后在 report 里只发了 2、30 个请求..此处是不是不应该 exit

  • allure 报告整合方案请教 at 2020年11月06日

    大佬 请教一下 allure2 可以自己指定一个端口号启动 web 服务吗

  • 楼主在文章里面说了一句:开发对待技术的优势往往是深度,测试往往是广度。

    大概在我想来就是测试能考虑到的方面更多。然后你需要作为一个中间人来协调各方,大概这就是立足点吧。(小声 bb)

  • 问一个关于 unittest 的问题 at 2018年11月20日
    class mytest(unittest.TestCase):
        def setUp(self):
            self.para = 0
            print('setup: %s' % self.para)
    
        def test01(self):
            self.para = 2
            print('t1: %s' % self.para)
    
        def test02(self):
            self.para = 4
            print('t2: %s' % self.para)
    
        def test03(self):
            self.para = 6
            print('t3: %s' % self.para)
    
        def tearDown(self):
            pass
    
    

    结果:

    ...

    Ran 3 tests in 0.000s

    OK
    setup: 0
    t1: 2
    setup: 0
    t2: 4
    setup: 0
    t3: 6

  • 给他点一下归零啊

  • 😅 感觉工作一年多了,自己身为测试人很浮躁很迷茫,听君一席话 不说少读十年书,半年也该有的 哈哈哈哈

  • sudo 不能丢啊 手动斜眼笑

  • 核心是不可能核心的,这辈子都不可能,bug 测不出来,线上天天爆炸,只好水水论坛,这里的老哥讲话超好听,我超。。。
    咳咳,跑题了,我也认同开发是核心的观点,产品决定价值,开发决定上限,测试决定下限。。。大概就是我的理解吧


  • 了解一下 →.→

  • 302 重定向问题 at 2018年05月14日

    老哥你说对了,使用新的后端框架之后,凡事后端返回的 http 状态码为 403 的都被移动重定向到移动导航页了。。。,之前请求失败,status_code 均返回 200, 前后端处理异常的错误状态码都在接口返回的字段里面定义,这一次直接返回了真实的 http 状态码结果就拉闸了。

  • 一般似乎都是 python manage.py migrate 这样初始化数据库的吧 0.0

  • HttpRunnerManager 正式发布 at 2018年04月07日

    看了下密码居然是明文的,,emmm 我觉得可以考虑将密码进行一种加密算法后存到数据库
    然后用户登录的时候用同样的加密算法加密后和数据库的数据进行校验,这样安全性会不会好一点?

  • JS 系列学习 基本语法组合 at 2018年04月05日

    马克,,一直想学一下,又懒。。懒是原罪啊

  • HttpRunnerManager 正式发布 at 2018年04月04日

    😂 感谢楼主的分享。
    弄了一天终于部署到自己服务器上了,django 部署的坑是真不少。。

  • 一行就厉害了。。
    例行献丑。..初学。哈哈

    m = [[1, 2, 3, -1], [4, 5, 6, -2], [7, 8, 9, -3]]
    n = []
    
    for x in range(0, len(m[0])):
        a = []
        for y in range(0, len(m)):
            a.append(m[y][x])
        n.append(a)
    print(n)
    
  • 这个文案确实是招聘届的一股清流。赞。

  • 我会大概考虑几个方面:

    1. 先用五分钟来确定功能是否可用,五分钟之后是否不能自动登录了。
    2. 时间的定义是 7*86400 ,还是 7 天后的 23:59:59
    3. 使用 360 全家桶一类的清理工具是否会清理 cookies,导致功能失效。
    4. 修改密码,仍可以?
    5. 单点登录的话,异地登录是否还能保持自动登录。
    6. 时间允许的话,过夜设置一天 试试。。

    上班忙里偷闲,答一个 哈哈哈

  • 如果让我这么做的话我会把 aseert 简单封装一下,在 catch 异常退出浏览器之后,再次调用启动浏览器共用方法,事先在 pageobject 中提供通用的进入该页面方法。 可能我的方法比较笨,哈哈哈。

    import unittest
    from selenium import webdriver
    
    def newChrome(page):
        dr = webdriver.Chrome()
        ''''go to page'''
        print('open a new webdriver!')
        return dr
    
    #将assert方法简单封装
    def compare(msg, target, name, page, dr):
        try:
            assert msg == target
            print('%s pass \n'%name)
            return dr
    
        except Exception as e:
            print('an error occured in %s'%name)
            dr.quit()
            print('webdriver quit! \n')
            return newChrome(page)
    
    
    #测试类DEMO
    class Mytest(unittest.TestCase):
    
        @classmethod
        def setUpClass(self):
            self.dr = webdriver.Chrome()
            print('setUp')
    
        @classmethod  
        def tearDownClass(self):
            self.dr.quit()
            print('tearDown \n')
    
        def testcaseA(self):
            self.dr = compare('1', '1', 'testcaseA', 'page', self.dr)
    
        def testcaseB(self):
            self.dr = compare('1', '2', 'testcaseB', 'page', self.dr)
    
        def testcaseC(self):
            self.dr = compare('2', '2', 'testcaseC', 'page', self.dr)
    
    if __name__ == '__main__':
        unittest.main()
    
  • 在一个测试类下的 testcase 是按照 ASCII 的顺序执行,不同文件下还真没研究过。。

  • 容器管理平台 rancher 简介 at 2017年11月26日

    干货啊,赞一个

  • 今天上线的东西太多了,,都没空来逛社区。。

    核心代码如下:

    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get('http://127.0.0.1:5000/HimoMP')
    js = "document.getElementById('Title').style.display='block'" #编写JS语句
    driver.execute_script(js) #执行JS
    contentText = driver.find_element_by_id('Title').text #定位元素
    print(contentText) #验证结果
    driver.quit()
    

    部分 HTML 页面:

    <header id="header">
        <a href="#" class="logo"><strong id="Title" style="display: none">AAAA</strong></a>
    </header>
    

    执行结果:

    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /HimoMP HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /static/css/main.css HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /static/js/jquery.min.js HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /static/js/skel.min.js HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /static/js/util.js HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /static/js/main.js HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:56] "GET /static/css/font-awesome.min.css HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:57] "GET /static/fonts/fontawesome-webfont.woff2?v=4.6.3 HTTP/1.1" 200 -
    127.0.0.1 - - [16/Nov/2017 19:14:57] "GET /favicon.ico HTTP/1.1" 404 -
    AAAA
    [Finished in 9.5s]
    

    亲测可用。

  • 用 js 把 display 属性改成其他的,比如:block。

  • 嘿嘿,也不知道你是不是这个意思,我的想法是将这个 testcase 作为一个公用的方法。然后在 testcase 中调用并且控制执行次数。
    下面贴一小段 code。献丑了 哈哈。

    import unittest
    
    def add(x):
        #读取数据,转化为数组、字典、矩阵等。
        a = [1, 2, 3, 4]
        b = [5, 6, 7, 8]
    
        #业务计算逻辑。
        return (a[x] + b[x])
    
    class MyTest(unittest.TestCase):
    
        def setUp(self):
            print('setUp')
    
        def test_case_B(self):
            #可以返回数组长度作为循环停止的条件,视具体情况定。
            for x in range(0, 4):
                print(add(x))
            #用断言对返回的结果做判断。
    
        def tearDown(self):
            print('tear down')
    
    if __name__ == '__main__':
        unittest.main()
    

    执行结果如下:

    setUp
    6
    8
    10
    12
    tear down
    ----------------------------------------------------------------------
    Ran 1 test in 0.000s
    OK
    [Finished in 0.1s]
    
  • 😂 其实对手机来说手指上划的操作和你鼠标点着不放拖动的效果是一样的。 因为微信页面一般也是一个 H5 页面。 一开始我就看了标题以为是 selenium 然后发现是 appnium 哈哈,溜了。不过可以发我一个页面地址让我去试试么。

  • 那你尝试使用 actionchains 里面 click_and_hold() 和 move_to_element() 或者 move_to_offset() 等等 拿不到具体页面也没法直接给你代码。。 =,=