接口封装遇到的坑--2

  1.关于jsonpath  一定要pip install jsonpath 

         所取的值为列表,取第一个为json_value[0]

 

      try:
         res_json = res.json()
         json_value = jsonpath.jsonpath(res_json,value)
         write_extract_yaml({key:json_value[0]})
     except Exception as e:
         print("返回文件不是json")

   2.取值时候,测试代码如下:注意:替换以后需要赋值给一个新的变量

 str = '/cgi-bin/tags/get?access_token=${access_token}'
    start_index = str.index("${")
    end_index = str.index("}",start_index)
    old_value = str[start_index:end_index+1]
    print(old_value)
    new_value = read_extract_yaml("access_token")
    print(new_value)
    str1 = str.replace(old_value,new_value)
    print(str1)

   3.替换的方法,需要条件,自己写代码忘记了一行:if "${" in data_str and "}" in data_str:  导致了只要把次数代码for cs in range(1,data_str.count("${")+1):去掉所有的用例就无法执行

 def repalce_value(self,data):
        if data:
            # 获取数据类型
            data_type = type(data)
            if isinstance(data,dict) or isinstance(data,list):
                data_str = json.dumps(data)
            else:
                data_str = str(data)
            #替换
            for cs in range(1,data_str.count("${")+1):
                if "${" in data_str and "}" in data_str:
                    start_index = data_str.index("${")
                    end_index = data_str.index("}", start_index)
                    old_value = data_str[start_index:end_index + 1]
                    new_value = read_extract_yaml(old_value[2:-1])
                    data_str = data_str.replace(old_value, new_value)

            #替换完成后再返回给data
            if isinstance(data,dict) or isinstance(data,list):
                data = json.loads(data_str)
            else:
                data = data_type(data_str)
        return data

     4.热加载,类对象的方法和字符串方法的调用,的目的:在进入替换方法的时候,通过热加载获取new_value 

  5.断言的目的就是要   

    1)获取res.text或者res.json()后根据返回断言,现在就是需要吧jsonpath获取res.json()并且抛出异常的方法放在外面 

    2)断言需要放在提取之后,因为要是断言失败之后的用例就不会提取了(对于接口关联的接口都不会执行)

    3)  断言相等或者包含需要标记flag,最后汇总到all_flags,最后assert all_flag=0,只有为0才是断言通过

 

  每篇一句:

    翻山又过海再想不起来

posted on 2021-12-12 21:26  Titen  阅读(53)  评论(0编辑  收藏  举报

导航