zoukankan      html  css  js  c++  java
  • fixture 调用函数名传参(转载)

    conftest.py
    @pytest.fixture(scope="class")
    def init_login():
        login_data = {"phone": tel, "country_code": 86, "password": "Pass123456", "device": "huawei",
                      "push_token": "0869381037778028300002104600CN01"}
        login_res = HttpRequest.http_request("http://www.baidu.com/api/user/login/by_password", login_data,
                                             "post")
        print(login_res.json())
        token = login_res.json()['data']['token']
        print(token)
        headers = {'Hoo-Agent': "a/2.3.5/8.0.0/HUAWEI_ANE-AL00/wifi/baidu",
                       "Content-type": "application/json",
                   'Authorization': "Token " + token}
        print("headers", headers)
        yield (token)  ##  yield 后跟一个参数,或者不跟参数
        print("结束测试")
    

    @ 测试类

    @pytest.mark.usefixtures("init_login")
    class TestOpenAPI():
       
        @pytest.mark.usefixtures("init_login")
        def test_freeze(self, init_login):
            print(init_login)  # 返回的是token的值,如果此时用init_login[0],返回的是token字符串的第一个字符
    

    注意红色部分:

    1. 如果 yield 后跟一个参数,或者不跟参数,在测试类中 返回的是token的值,如果此时用init_login[0],返回的是token字符串的第一个字符
    2. 如果yield 后多个参数,测试测试类中,init_login 返回的是一个元组(或者列表,根据自己的设计),init_login[0],返回的是元组中的第一个元素。

    参考此链接:https://www.cnblogs.com/zzllovehappy/p/10839151.html

  • 相关阅读:
    /pentest/enumeration/0trace/0trace.sh
    2.2synchronized同步语句块
    2.1synchronized同步方法
    第二章:对象及变量的并发序言
    第一章总结
    1.11守护线程
    1.10线程的优先级
    1.9yield方法
    1.8暂停线程
    微信自动回复
  • 原文地址:https://www.cnblogs.com/hghua/p/13149532.html
Copyright © 2011-2022 走看看