美文网首页
pytest框架-多环境下的接口测试02

pytest框架-多环境下的接口测试02

作者: 软件开发技术修炼 | 来源:发表于2021-12-26 00:00 被阅读0次

    实现原理:

    请求之前,对请求的url进行替换

    1、需要二次封装requests,对请求进行定制化;
    2、将请求的结构体的url从一个写死的ip地址改为一个任意的域名
    3、使用一个env配置文件,存放各个环境的配置信息
    4、然后将请求结构体中的url替换成env配置文件中个人选择的url
    5、将env配置文件使用yaml进行管理

    创建 env_demo.py 封装requests

    import requests
    
    class Api:
        #读取写入到yaml中的环境信息
        env = yaml.safe_load(open("wnv.yaml"))
        print(env)
        #env = {
            #"default":"dev",
            #"testing-studio":
            #{
           # "dev":"127.0.0.1",
            #"test":"127.0.0.2" 
           # }   
    #}
    
        #data是一个请求的信息
        def send(self,data:dict):
             #使用字符串的替换方法replace
            data["url"] = str(data["url"]).replace("testing-studio",self.env["testing-studio"][self.env["default"]])
            r = requests.request(method = data["method"],url =data["url"] ,headers = data["headers"] )
    
    

    创建 test_api.py 运行接口文件

    from unittest import TestCase
    from test_requests import env_demo
    
    class TestApi(TestCase):
        data = {
          "method":"get",
           "url":"http://testing-studio:9999/demo1.txt",
          "headers":None
    }
      
        def test_send(self):
            api = env_demo.Api()
            print(api.send(self.data).text)
    
    

    创建 test_yaml.py,将env配置文件转为yml文件

    import yaml
    
    def test_yaml2():
          env = {
            "default":"dev",
            "testing-studio":
            {
            "dev":"127.0.0.1",
            "test":"127.0.0.2" 
            }   
    }
        with open("env.yaml","w") as f:
            yaml.safe_dump(data=env,stream = f)
    

    相关文章

      网友评论

          本文标题:pytest框架-多环境下的接口测试02

          本文链接:https://www.haomeiwen.com/subject/cxpjqrtx.html