• python之自动化框架中cookies处理方法006


    我们在测试非登录模块的时候,会需要cookies,那么如何传递这个cookies呢?

    方法一:全局变量     缺点:关联性比较强

    思路:

    1.excel非登录模块的测试用例第一条加登录成功的用例

    2.执行这条用例成功后,获取cookies并存入全量变量:COOKIE 

     主程序代码中,定义一个全局变量,并在函数体中使用关键字global 申明该变量:

    from tools.http_request import HttpRequest
    from tools.do_excel import DoExcel #引用DoExcel模块
    
    COOKIE =None
    def run(test_data):#传入列表嵌套字典的数据格式
        global  COOKIE
        for item in test_data:#循环执行用例
            print("正在测试的用例标题:{0}".format(item["title"]))
            res = HttpRequest().http_request(item["method"], item["url"],eval(item["header"]), item["data"],COOKIE)
            if res.cookies:#非空、非null即为TRUE
                COOKIE = res.cookies
            print("测试结果是:{0}".format(res.json()))
            DoExcel().write_back("\test_data\test_case.xlsx","recharge_case",item["case_id"]+1,str(res.json()))
    
    if __name__ == '__main__':
        test_data = DoExcel().get_data("\test_data\test_case.xlsx","recharge_case")
        run(test_data)

     方法二:反射(根据传入的类直接对类的属性进行操作),单独编写GetData模块,主程序引入该模块,通过setattr函数给cookie赋值、getattr函数获取cookie,不需要声明

    class GetData:#
        Cookie = None  #属性;Cookie,初始化为None
    对这个类的基本操作如下:

    if __name__ == '__main__':
    print(GetData.Cookie)
    setattr(GetData,'Cookie','001')#可以直接把类里面的属性值做修改,第一个参数:类名,第二个参数:属性名,第三个参数:赋值
    print(GetData.Cookie)
    print(hasattr(GetData,'Cookie'))#判断是否存在这个属性值
    print(type(getattr(GetData,'Cookie')))#获取属性值
    delattr(GetData,'Cookie')#删除属性值
    print(hasattr(GetData, 'Cookie')) # 判断是否存在这个属性值,返回布尔值

    主程序代码中引入该模块:
    from tools.get_data import GetData 
    
    def run(test_data):
        for item in test_data:
            print("正在测试的用例标题:{0}".format(item["title"]))
            res = HttpRequest().http_request(item["method"], item["url"],eval(item["header"]), item["data"],getattr(GetData,"Cookie"))
            if res.cookies:
                setattr(GetData,"Cookie",res.cookies)
            print("测试结果是:{0}".format(res.json()))
  • 相关阅读:
    spark内存概述
    Spark Streaming使用Kafka保证数据零丢失
    usbmanger android 底下USB的工作模式
    TextView赋值int型,并显示
    Android jni编辑.so库
    opencv使用convexityDefects计算轮廓凸缺陷
    opencv轮廓处理函数详细
    slam相关知识
    VS2010+PCL+openni配置
    共有65款 计算机视觉库/人脸识别开源软件
  • 原文地址:https://www.cnblogs.com/july-1016/p/14090436.html
Copyright © 2020-2023  润新知