Record life and learning ;|

winkie

园龄:4年10个月粉丝:9关注:10

解决自动化数据依赖方案

  1. 前置函数,设置成类属性。

  2. 业务流测试用例,通过执行顺序,保存所需的数据依赖,写到类属性

  3. 实现业务流的完全数据驱动,ddt测试用例实际时,可以增加一列

    1. 在用例数据中添加一列 extract 表示提取响应数据并保存在对应的类属性中,规则如下:

      [{"name":"id","exp":"$..id"},{"name":"token","exp":"$..token"}]
      
    2. 数据库断言后调用此方法

      import jsonpath
      def extract_data(self):
          """
        提取响应中的数据并保存到用例类属性中
          :return:
          """
          if self.case.get('extract'):
              for item in json.loads(self.case['extract']):
                  name = item['name']
                  exp = item['exp']
                  res = jsonpath.jsonpath(self.response.json(), exp)
                  if res:
                      setattr(self.__class__, name, res[0])
                  else:
                       raise ValueError(f'用例【{self.case[title]}】提取表达{exp}式错误'
      
  4. session会话技术

    会话对象可以跨请求保持某些参数。它也会在同一个session实例发出的所有请求之间保持cookie。

    import requests
    s = requests.session()
    login_url = '' 
    data = {"email":"账号","password":"密码","remember":0} # 登录
    res = s.post(url=login_url, data=data)
    res.text
    
    courses_url = '' # 获取课程列表
    res = s.get(courses_url)
    res.json()
    

    拓展session和cookie区别

    1. cookie数据存放在客户的浏览器(客户端)上,session数据放在服务器上,但是服务端的session的实现对客户端的cookie有依赖关系的;
    2. cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
    3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
    4. 单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;

本文作者:ck_winkie

本文链接:https://www.cnblogs.com/zz-winkie/p/16528997.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   winkie  阅读(102)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起