zoukankan      html  css  js  c++  java
  • 业务流测试

    需求:完成投资的业务流测试。

    步骤: 审核项目、投资等步骤依赖于前面登录、添加项目的操作

     思路:

    1.对数据进行预处理,接口访问。数据替换,字符串转为字典,动态获取类的属性

    2.访问接口,得到接口的返回结果

    3.从响应结果中读取下面接口需要的数据,设置为同名的属性:#invest_token#

    4.断言

     未封装前代码示例:

        @data(*cases)
        def test_invest(self, info):
            # 1,对数据进行预处理 , 接口访问。 数据替换, 字符串转化成字典
            # prev_data(info) -> info
    
            json_data = info['json']
            headers = info['headers']
            # 完成替换
            json_data = self.replace_data(json_data)
            headers = self.replace_data(headers)
    
            headers = json.loads(headers)
            json_data = json.loads(json_data)
            expected = json.loads(info['expected'])
            extractor = {}
            if info['extractor']:
                extractor = json.loads(info['extractor'])
    
            # 2,访问接口,得到接口的返回结果。
            resp = requests.request(method=info['method'],
                             url=config.host + info['url'],
                             headers=headers,
                             json=json_data).json()
    
            # 3. 响应结果当中读取接下来接口需要的数据,设置成#同名的属性 #investor_token
            # 获取投资人登录的 id 和 token
            # 把 id 设置成 APICase.investor_member_id
            # 把 token 值设置成 APICase.investor_token
            # 通过 jsonpath $..id  $..token
            # 设置属性,属性名称也要写到 excel,  investor_member_id
            for prop_name, jsonpath_expression in extractor.items():
                value = jsonpath(resp, jsonpath_expression)[0]
                # 设置 APICase 实例属性还是类属性
                setattr(APICase, prop_name, value)
    
            # 4, 断言
            for key, value in expected.items():
                self.assertEqual(value, resp[key])

    封装过程:

    步骤1:登录的账号可以从配置文件获取,每次执行用例前执行一遍

     步骤2 :进行数据的预处理,在base.API中封装好方法,在测试类中再继承base.API

    步骤3:访问接口,得到接口的返回结果

    步骤4:提取数据,设置下个接口需要的同名属性,以便下个接口调用时能动态获取类的属性

    步骤5:封装断言

    步骤6:完整封装所有步骤

     

  • 相关阅读:
    RobotFramework关键字返回参数
    安装MySQL提示:应用程序无法正常启动(0xc000007b)
    python操作mysql数据库
    Windows安装mysql8.0
    Windows解决多版本python执行pip3时出错AttributeError: module 'enum' has no attribute 'IntFlag'?
    优秀测试博主
    RobotFramework与Jenkins集成发送邮件
    Robot+Jenkins配置发邮件
    PHP 两个多维数组根据某个键的值进行组合排序的几种思路
    debian下配置keepalived ha
  • 原文地址:https://www.cnblogs.com/wsfsd/p/15517154.html
Copyright © 2011-2022 走看看