zoukankan      html  css  js  c++  java
  • 自动化:自动化框架、脚本编写总结

    1. web自动化脚本:
      • 层次分明:页面元素层、业务流层、控件层、用例层   //好处:数据驱动、脚本维护方便(如果只是页面的某个元素变化只需要修改元素层内容;如果只是业务逻辑有调整,只要修改业务层内容;如果要增加测试场景,只需在用例处新增输入及预期结果即可) 
    2. 剥离出脚本统一在一个地方维护:
      • 环境信息:ip、port、ssh连接信息、数据库连接信息
      • 帐号密码信息
      • 测试文件/数据:用例中用到的测试文件、测试数据统一放在一个目录,作为公用,其它用例也可一起用,避免准备多份数据占用空间、维护麻烦等
      • 配置信息
      • 大部分脚本要用到的配置或者参数
    3. 一个项目最好要有code、lib、config、testfile等目录,归类存放、维护
      • code:自动化脚本/用例
      • lib:封装的各类公用方法、文件/数据处理方法、业务相关方法等
      • config:配置信息、环境信息、帐号密码信息、url等
      • testfile:测试文件/数据等
    4. 脚本里尽量不要用固定等待的方式,比如要等到某个定时器或者某个异步任务执行完成才进行下一步,不用sleep 60类似的方式!!采用浮动等待的方式(好处:脚本精确等待任务执行完成不会耗时过长;脚本稳定)
      •  示例如下:

      • def wait_until_expect_mgr_status(url, persistent_id, interval=3, max_waittime=10, expect_status='fileOperateSucceedAndReturnPersistentSucceed',after_waittime=0):
            """
            浮动等待http://27.148.167.201/status/get/prefop?persistentId=ahd01066a121cd4c00001b94a7c906651090返回最后一个子任务的status字段为期望值(省去强制等待较长时间的问题)
            :param url: 请求的url
            :param persistent_id: persistet_id
            :param interval: 每个等待周期间隔时间
            :param max_waittime: 最大允许等待的时间
            :param expect_status: status字段的期望值
            :param after_waittime: 字段变为期望值之后,再强制等待的时间,配合“定时器5s查询一次子任务状态,然后更新主任务状态”
            :return: None
            """
            wait_time = 0
            times = int(max_waittime/interval)
            url = url + '?persistentId=' + persistent_id
            print ('请求URL:%s' % url)
            for i in range(0,times):
                rq = requests.get(url)
                get_status = json.loads(rq.text).get('items')[0].get('desc')
                if get_status == expect_status:
                    print u'
        Success. 当前状态(%s)和期望的状态(%s)一致,当前等待总时长:%s' % (get_status, expect_status, wait_time)
                    time.sleep(after_waittime)
                    return
                time.sleep(interval)
                wait_time = wait_time + interval
                print u'当前状态(%s)和期望的状态(%s)不一致,已等待总时长:%s' % (get_status, expect_status, wait_time)
            print u"
        Error. 当前状态(%s)和期望的状态(%s)不一致,已到达允许等待最大时长:%s" % (get_status, expect_status, max_waittime)
            raise AssertionError(u"Fail.")
        View Code

          

    5. 1

      

    每天努力一点,每天学习一点。 Keep Moving...
  • 相关阅读:
    踩踩踩
    c语言可变参
    C++开发者都应该使用的10个C++11特性
    c++11 条件变量 生产者-消费者 并发线程
    c++11 线程
    C++ 虚函数表解析 继承
    坐标系
    C++ 容器:顺序性容器、关联式容器和容器适配器
    全面深入介绍C++字符串:string类
    做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk
  • 原文地址:https://www.cnblogs.com/channy14/p/12978641.html
Copyright © 2011-2022 走看看