• httprunnerManager- Hook机制


    一、Hook引入背景
    若接口在测试前后需要进行特殊处理,如执行前的初始化操作、执行完成后的等待操作。类似于 unittest 中的 setUp() 和 tearDown() 方法,HttpRunner中的Hook功能也支持此类操作。
    setup_hooks:在HTTP请求发送前执行hook函数,主要用于准备工作;也可实现对请求的request内容进行预处理
    teardown_hooks:在HTTP请求发送后执行hook函数,主要用于测试后的清理工作;也可实现对响应的response 进行修改,例如进行加解密等处理
     
    二、实践案例
    案例描述:设置接口请求之后如果响应状态码为200,就等待100ms;否则就按照自定义设定的时间进行等待
     
    测试接口:http://httpbin.org/get
    请求类型:GET
    1.编辑debugtalk.py代码,创建辅助函数sleep()
    debugtalk.py
    import hashlib
    import time
    
    # 定义获取sign的方法,传递用户名和密码参数
    def getSign(user,passwd):
        str = user+passwd   # 拼接用户名+密码的字符串
        md5 = hashlib.md5() # 调用hashlib模块的md5()方法
        md5.update(str.encode(encoding='utf-8'))  # 对str进行utf-8格式编码,然后用md5加密
        sign = md5.hexdigest()  # md5加密,并以16进制的字符串进行存储到sign变量
        return sign
    # 根据给定的 [用户名+密码] 生成md5加密的摘要信息,并返回sign的结果
    print(getSign('admin','123456'))
    
    def sleep(response,t):
        if response.status_code==200:
            time.sleep(0.1)
        else:
            time.sleep(t)   # 根据t值,延迟设定的时间

    (PS:getSign() 方法为上文所用到的md5加密函数,本文可暂时不调用该函数)

     
    2.创建用例,引用辅助函数
    新建用例test_get_request_hook,本次在非200状态码时自定义延迟2s响应时间,则在其中设置引用辅助函数 ${sleep($response,2)}
    hooks中引用辅助函数:
    操作:variables/parameters --> add hooks --> teardown_hooks:填写引用的辅助函数
    对响应状态码(status_code)设置断言:
    操作:extract/validate --> add validate --> validate:设置断言所检查的响应字段、逻辑关系、字符类型、预期值
     
    执行用例:
    200状态,延迟0.1s响应时间
     
    构造非200响应状态,如404状态。修改接口地址为:http://httpbin.org/getaaa
    404状态,延迟2s响应时间
     
  • 相关阅读:
    Appium简介
    本章小结
    测试角色定位,岗位职责
    如何做好空降管理者
    如何把控产品质量
    Appium自动化测试教程-自学网-monkeyrunner API
    Appium自动化测试教程-自学网-monkeyrunner简介
    Appium自动化测试教程-自学网-monkey日志管理
    Appium自动化测试教程-自学网-monkey自定义脚本实践
    Appium自动化测试教程-自学网-monkey参数
  • 原文地址:https://www.cnblogs.com/summerxye/p/11057812.html
Copyright © 2020-2023  润新知