前言
为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数。

比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行。

但是登录的账号不能写死,有时候我想用账号1去登录,执行用例1,用账号2去登录执行用例2,所以需要对函数传参。

登录函数传参

把登录单独成立,写一个函数,传3个参数user和psw,uri,写用例的时候调用登录函数,输入几组user,psw,uri参数化登录用例
测试用例传参需要用装饰器@pytest.mark.parametrize,里面写两个参数
1、第一个参数是字符串,多个参数中间用逗号隔开
2、第二个参数是list,多组数据用元祖类型
import pytest
import requests, urllib3
urllib3.disable_warnings() test_login_data = [('QQ:88428977', '' , 'xxxxx'),
('QQ:', '' , '互相学习、探讨。')]
s = requests.session()
def login(user, psw, uri):
'''登陆测试'''
print("登陆账户:%s" % user)
print("登陆密码:%s" % psw)
print("登陆网址:%s" % uri)
url = uri + "/global/do-login.action"
body = {
"loginName": "%s" % user,
"password": "%s" % psw,
"pcCodeForFocusMedia": 0
}
a = s.post(url, data=body, verify=False)
data = a.json()
print(data['status'])
if data['status'] == 202:
return True
else:
return False @pytest.mark.parametrize("user, psw, uri", test_login_data)
def test_login(user, psw, uri):
'''登陆用例'''
result = login(user, psw, uri)
assert result == True, "失败原因:密码为空" if __name__ == '__main__':
pytest.main(['-s', 'firture_request_01.py'])

运行结果

============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1
rootdir: D:\python_auto\s14\pytest_learn, inifile:
collected 2 items firture_request_01.py 登陆账户:xxxx
登陆密码:111111
登陆网址:xxxx202
.登陆账户:xxxx
登陆密码:
登陆网址:xxxx401
F ================================== FAILURES ===================================
___________ test_login[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] ___________ user = 'QQ:', psw = '', uri = 'xxxxxxx' @pytest.mark.parametrize("user, psw, uri", test_login_data)
def test_login(user, psw, uri):
'''登陆用例'''
result = login(user, psw, uri)
> assert result == True, "失败原因:密码为空"
E AssertionError: 失败原因:密码为空
E assert False == True firture_request_01.py:38: AssertionError
===================== 1 failed, 1 passed in 0.64 seconds ======================

从结果可以看出,有2个用例,一个测试通过,一个测试失败了,互不影响

request参数

如果想把登录操作放到前置操作里,也就是用到@pytest.fixture装饰器,传参就用默认的request参数

user = request.param 这一步是接收传入的参数,本案例是传一个参数情况

添加indirect=True参数是为了把login当成一个函数去执行,而不是一个参数

import pytest
import requests, urllib3
urllib3.disable_warnings() test_login_user = ['QQ:', 'xxxxx'] s = requests.session() @pytest.fixture(scope='module')
def login(request):
'''登陆测试'''
user = request.param
uri = 'xxxxxx'
psw = 111111
print("登陆账户:%s" % user)
print("登陆密码:%s" % psw)
print("登陆网址:%s" % uri)
url = uri + "/global/do-login.action"
body = {
"loginName": "%s" % user,
"password": "%s" % psw,
"pcCodeForFocusMedia": 0
}
a = s.post(url, data=body, verify=False)
data = a.json()
return data @pytest.mark.parametrize("login", test_login_user, indirect=True)
def test_login(login):
'''登陆用例'''
result = login
print(result['status'])
print("测试用例中login的返回值:%s" % result)
assert result['status'] == 202 if __name__ == '__main__':
pytest.main(['-s', 'firture_request_03.py'])

运行结果:

============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1
rootdir: D:\python_auto\s14\pytest_learn, inifile:
collected 2 items firture_request_03.py 登陆账户:88428977
登陆密码:111111
登陆网址:xxxx202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 833365, 'username': '', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'e2bc9017004509e4d2556b00b7cc45e8'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f2d7d588d2e4f4a485d023a6e0f05128'}, {'id': 338103, 'name': '1801灰度测试_专业版', 'type': 0, 'encryptionKey': '0050fcf2201221716d01ff4a555875d5'}, {'id': 338104, 'name': '1801灰度测试_企业版', 'type': 0, 'encryptionKey': 'bcfc6bfa051ade101270aeb289851b74'}, {'id': 338107, 'name': '1801灰度测试_企业版_0115', 'type': 0, 'encryptionKey': '9d4b87e8da4e1a8b2b5008d2f81d3e33'}, {'id': 338109, 'name': '1801灰度测试_专业版_0116', 'type': 0, 'encryptionKey': '097386a4534e893a36598e3a629d0ace'}, {'id': 339133, 'name': '0120 线上:测试专用-价格表(旗舰版)', 'type': 0, 'encryptionKey': '37678f82cecd4ac6baccb209fc1376d6'}, {'id': 339501, 'name': 'BI权限测试_0118_1244', 'type': 0, 'encryptionKey': '73ef0933128938eb8e7aba095b8dc86a'}, {'id': 339508, 'name': 'SFA_生产灰度_org_normal', 'type': 0, 'encryptionKey': '0d91018b797f9ed9d25f32e68d31bee0'}, {'id': 341998, 'name': '自动化测试_0202_1109_正式', 'type': 0, 'encryptionKey': '398f9e20e1639fb28ec300c1914bf0b7'}, {'id': 353979, 'name': 'SFA自动化测试1(正式CPQ)', 'type': 0, 'encryptionKey': '8b404ea9167b2be0147d4e03c13ad0d4'}, {'id': 354809, 'name': 'QJP灰度20180414-有cpq', 'type': 0, 'encryptionKey': '50c3b2c9c7e4b5e8120be58772b454ad'}, {'id': 357509, 'name': '李星宇20180511', 'type': 0, 'encryptionKey': '7d20934c665b52415522829c42757be2'}, {'id': 367512, 'name': '灰度自动化有CPQ', 'type': 0, 'encryptionKey': 'a77071187a2a78f968185dfdb3e1f393'}, {'id': 367533, 'name': 'SFA_生产灰度_org_CPQ', 'type': 0, 'encryptionKey': '4b94ae7144417b1a5ea8e11cf82fc529'}, {'id': 370063, 'name': '正式租户_20180728_yr', 'type': 0, 'encryptionKey': '29f58431b4c9c85823f7cfc58e6d3de1'}]}}
.登陆账户:xxxx
登陆密码:111111
登陆网址:xxxx202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 381310, 'username': 'xxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 102, 'name': '仁科互动', 'type': 0, 'encryptionKey': '3a144f9ae5aa4a8445e40e079fb4811d'}, {'id': 166912, 'name': '销售易ST租户', 'type': 0, 'encryptionKey': 'aa0506583e82c8b49d24173cfaedcaa9'}, {'id': 188443, 'name': '无限挑战', 'type': 0, 'encryptionKey': 'fe42689ef2e210423b02501dc7a93699'}, {'id': 204952, 'name': '大中电器(线上环境)', 'type': 0, 'encryptionKey': '141aa04a935c782d3bffbce3cbb833a4'}, {'id': 206453, 'name': '销售易灰度测试-旗舰版', 'type': 0, 'encryptionKey': 'e61a0119decfdebf644043e79533a754'}, {'id': 223528, 'name': '销售易灰度测试-企业版', 'type': 0, 'encryptionKey': '6df8da414b401867f16628bc8f4aa6d3'}, {'id': 307913, 'name': '高新兴项目', 'type': 0, 'encryptionKey': '814aac87f8791ba0a839b83afc0d6dce'}, {'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'c4a2b12eff1c7d2b33ca792bc04c57fb'}, {'id': 313101, 'name': '富士康生产灰度_20170920_1354', 'type': 0, 'encryptionKey': '7811ba8ea37f14c7534b794c09bf7112'}, {'id': 314604, 'name': '生产灰度_20170923_1122', 'type': 0, 'encryptionKey': 'c7443d31fc5d360f5664e258119121bd'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f108b2ce59ca912261be6fabe59f7965'}, {'id': 338108, 'name': '20180116俊平灰度租户', 'type': 0, 'encryptionKey': '0a8d7d7df74d8c45413d4bee7f384dd5'}, {'id': 367507, 'name': '20180707灰度-订单-非cpq-变更单', 'type': 0, 'encryptionKey': '73793445f6fc8f4de61ce9db2e996b77'}, {'id': 368326, 'name': '20180728-正式-变更单', 'type': 0, 'encryptionKey': '0135215361bf4332bc9fc2a23a266174'}]}}
. ========================== 2 passed in 0.63 seconds ===========================

request传3个参数

如果用到@pytest.fixture,里面用2个参数情况,可以把多个参数用一个字典去存储,

这样最终还是只传一个参数不同的参数再从字典里面取对应key值就行,如: user = request.param[“user”]

!!如果要用到login里面的返回值,def test_login(login)时,传入login参数,函数返回值就是login了

import pytest
import requests, urllib3
urllib3.disable_warnings() test_login_data = [{'user':'QQ:', 'psw':'', 'uri':'xxxx'},
{'user':'xxxx', 'psw':'', 'uri':'xxxx'}] s = requests.session() @pytest.fixture(scope='module')
def login(request):
'''登陆测试'''
user = request.param['user']
psw = request.param['psw']
uri = request.param['uri']
print("登陆账户:%s" % user)
print("登陆密码:%s" % psw)
print("登陆网址:%s" % uri)
url = uri + "/global/do-login.action"
body = {
"loginName": "%s" % user,
"password": "%s" % psw,
"pcCodeForFocusMedia": 0
}
a = s.post(url, data=body, verify=False)
data = a.json()
return data # indirect=True 声明login是个函数
@pytest.mark.parametrize("login", test_login_data, indirect=True)
def test_login(login):
'''登陆用例'''
result = login
print(result['status'])
print("测试用例中login的返回值:%s" % result)
assert result['status'] == 202 if __name__ == '__main__':
pytest.main(['-s', 'firture_request_04.py'])

运行结果:

============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1
rootdir: D:\python_auto\s14\pytest_learn, inifile:
collected 2 items firture_request_04.py 登陆账户:88428977
登陆密码:111111
登陆网址:xxxxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 833365, 'username': '', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'e2bc9017004509e4d2556b00b7cc45e8'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f2d7d588d2e4f4a485d023a6e0f05128'}, {'id': 338103, 'name': '1801灰度测试_专业版', 'type': 0, 'encryptionKey': '0050fcf2201221716d01ff4a555875d5'}, {'id': 338104, 'name': '1801灰度测试_企业版', 'type': 0, 'encryptionKey': 'bcfc6bfa051ade101270aeb289851b74'}, {'id': 338107, 'name': '1801灰度测试_企业版_0115', 'type': 0, 'encryptionKey': '9d4b87e8da4e1a8b2b5008d2f81d3e33'}, {'id': 338109, 'name': '1801灰度测试_专业版_0116', 'type': 0, 'encryptionKey': '097386a4534e893a36598e3a629d0ace'}, {'id': 339133, 'name': '0120 线上:测试专用-价格表(旗舰版)', 'type': 0, 'encryptionKey': '37678f82cecd4ac6baccb209fc1376d6'}, {'id': 339501, 'name': 'BI权限测试_0118_1244', 'type': 0, 'encryptionKey': '73ef0933128938eb8e7aba095b8dc86a'}, {'id': 339508, 'name': 'SFA_生产灰度_org_normal', 'type': 0, 'encryptionKey': '0d91018b797f9ed9d25f32e68d31bee0'}, {'id': 341998, 'name': '自动化测试_0202_1109_正式', 'type': 0, 'encryptionKey': '398f9e20e1639fb28ec300c1914bf0b7'}, {'id': 353979, 'name': 'SFA自动化测试1(正式CPQ)', 'type': 0, 'encryptionKey': '8b404ea9167b2be0147d4e03c13ad0d4'}, {'id': 354809, 'name': 'QJP灰度20180414-有cpq', 'type': 0, 'encryptionKey': '50c3b2c9c7e4b5e8120be58772b454ad'}, {'id': 357509, 'name': '李星宇20180511', 'type': 0, 'encryptionKey': '7d20934c665b52415522829c42757be2'}, {'id': 367512, 'name': '灰度自动化有CPQ', 'type': 0, 'encryptionKey': 'a77071187a2a78f968185dfdb3e1f393'}, {'id': 367533, 'name': 'SFA_生产灰度_org_CPQ', 'type': 0, 'encryptionKey': '4b94ae7144417b1a5ea8e11cf82fc529'}, {'id': 370063, 'name': '正式租户_20180728_yr', 'type': 0, 'encryptionKey': '29f58431b4c9c85823f7cfc58e6d3de1'}]}}
.登陆账户:xxxx
登陆密码:111111
登陆网址:xxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 381310, 'username': 'xxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 102, 'name': '仁科互动', 'type': 0, 'encryptionKey': '3a144f9ae5aa4a8445e40e079fb4811d'}, {'id': 166912, 'name': '销售易ST租户', 'type': 0, 'encryptionKey': 'aa0506583e82c8b49d24173cfaedcaa9'}, {'id': 188443, 'name': '无限挑战', 'type': 0, 'encryptionKey': 'fe42689ef2e210423b02501dc7a93699'}, {'id': 204952, 'name': '大中电器(线上环境)', 'type': 0, 'encryptionKey': '141aa04a935c782d3bffbce3cbb833a4'}, {'id': 206453, 'name': '销售易灰度测试-旗舰版', 'type': 0, 'encryptionKey': 'e61a0119decfdebf644043e79533a754'}, {'id': 223528, 'name': '销售易灰度测试-企业版', 'type': 0, 'encryptionKey': '6df8da414b401867f16628bc8f4aa6d3'}, {'id': 307913, 'name': '高新兴项目', 'type': 0, 'encryptionKey': '814aac87f8791ba0a839b83afc0d6dce'}, {'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'c4a2b12eff1c7d2b33ca792bc04c57fb'}, {'id': 313101, 'name': '富士康生产灰度_20170920_1354', 'type': 0, 'encryptionKey': '7811ba8ea37f14c7534b794c09bf7112'}, {'id': 314604, 'name': '生产灰度_20170923_1122', 'type': 0, 'encryptionKey': 'c7443d31fc5d360f5664e258119121bd'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f108b2ce59ca912261be6fabe59f7965'}, {'id': 338108, 'name': '20180116俊平灰度租户', 'type': 0, 'encryptionKey': '0a8d7d7df74d8c45413d4bee7f384dd5'}, {'id': 367507, 'name': '20180707灰度-订单-非cpq-变更单', 'type': 0, 'encryptionKey': '73793445f6fc8f4de61ce9db2e996b77'}, {'id': 368326, 'name': '20180728-正式-变更单', 'type': 0, 'encryptionKey': '0135215361bf4332bc9fc2a23a266174'}]}}
. ========================== 2 passed in 0.75 seconds ===========================

多个fixtrue

用例上面是可以同时放多个fixture的,也就是多个前置操作,可以支持装饰器叠加,使用parametrize装饰器叠加时,用例组合是3个参数个数相乘

import pytest
import requests, urllib3, time
urllib3.disable_warnings() test_login_user = ['xxxx', 'QQ:88428977']
test_login_psw = ['' , '']
test_login_uri = ['xxxxx', 'xxxxx'] s = requests.session() @pytest.fixture(scope='module')
def input_user(request):
user = request.param
print("登陆账户:%s" % user)
return user @pytest.fixture(scope='module')
def input_psw(request):
psw = request.param
print("登陆密码:%s" % psw)
return psw @pytest.fixture(scope='module')
def input_uri(request):
uri = request.param
print("登陆网址:%s" % uri)
return uri @pytest.fixture(scope='module')
def login(user, psw, uri):
'''登陆测试'''
url = uri + "/global/do-login.action"
body = {
"loginName": "%s" % user,
"password": "%s" % psw,
"pcCodeForFocusMedia": 0
}
a = s.post(url, data=body, verify=False)
data = a.json()
time.sleep(2)
return data @pytest.mark.parametrize("input_user", test_login_user, indirect=True)
@pytest.mark.parametrize("input_psw", test_login_psw, indirect=True)
@pytest.mark.parametrize("input_uri", test_login_uri, indirect=True)
def test_login(input_user, input_psw, input_uri):
'''登陆用例'''
user = input_user
psw = input_psw
uri = input_uri
# 实例化login
result = login(user, psw, uri)
print(result['status'])
print("测试用例中login的返回值:%s" % result)
assert result['status'] == 202 if __name__ == '__main__':
pytest.main(['-s', 'firture_request_02.py'])

运行结果

============================= test session starts =============================
platform win32 -- Python 3.6.2, pytest-3.7.4, py-1.6.0, pluggy-0.7.1
rootdir: D:\python_auto\s14\pytest_learn, inifile:
collected 8 items firture_request_02.py 登陆账户:xxxxx
登陆密码:111111
登陆网址:xxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 381310, 'username': 'xxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 102, 'name': '仁科互动', 'type': 0, 'encryptionKey': '3a144f9ae5aa4a8445e40e079fb4811d'}, {'id': 166912, 'name': '销售易ST租户', 'type': 0, 'encryptionKey': 'aa0506583e82c8b49d24173cfaedcaa9'}, {'id': 188443, 'name': '无限挑战', 'type': 0, 'encryptionKey': 'fe42689ef2e210423b02501dc7a93699'}, {'id': 204952, 'name': '大中电器(线上环境)', 'type': 0, 'encryptionKey': '141aa04a935c782d3bffbce3cbb833a4'}, {'id': 206453, 'name': '销售易灰度测试-旗舰版', 'type': 0, 'encryptionKey': 'e61a0119decfdebf644043e79533a754'}, {'id': 223528, 'name': '销售易灰度测试-企业版', 'type': 0, 'encryptionKey': '6df8da414b401867f16628bc8f4aa6d3'}, {'id': 307913, 'name': '高新兴项目', 'type': 0, 'encryptionKey': '814aac87f8791ba0a839b83afc0d6dce'}, {'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'c4a2b12eff1c7d2b33ca792bc04c57fb'}, {'id': 313101, 'name': '富士康生产灰度_20170920_1354', 'type': 0, 'encryptionKey': '7811ba8ea37f14c7534b794c09bf7112'}, {'id': 314604, 'name': '生产灰度_20170923_1122', 'type': 0, 'encryptionKey': 'c7443d31fc5d360f5664e258119121bd'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f108b2ce59ca912261be6fabe59f7965'}, {'id': 338108, 'name': '20180116俊平灰度租户', 'type': 0, 'encryptionKey': '0a8d7d7df74d8c45413d4bee7f384dd5'}, {'id': 367507, 'name': '20180707灰度-订单-非cpq-变更单', 'type': 0, 'encryptionKey': '73793445f6fc8f4de61ce9db2e996b77'}, {'id': 368326, 'name': '20180728-正式-变更单', 'type': 0, 'encryptionKey': '0135215361bf4332bc9fc2a23a266174'}]}}
.登陆账户:xxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 833365, 'username': 'xxxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'e2bc9017004509e4d2556b00b7cc45e8'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f2d7d588d2e4f4a485d023a6e0f05128'}, {'id': 338103, 'name': '1801灰度测试_专业版', 'type': 0, 'encryptionKey': '0050fcf2201221716d01ff4a555875d5'}, {'id': 338104, 'name': '1801灰度测试_企业版', 'type': 0, 'encryptionKey': 'bcfc6bfa051ade101270aeb289851b74'}, {'id': 338107, 'name': '1801灰度测试_企业版_0115', 'type': 0, 'encryptionKey': '9d4b87e8da4e1a8b2b5008d2f81d3e33'}, {'id': 338109, 'name': '1801灰度测试_专业版_0116', 'type': 0, 'encryptionKey': '097386a4534e893a36598e3a629d0ace'}, {'id': 339133, 'name': '0120 线上:测试专用-价格表(旗舰版)', 'type': 0, 'encryptionKey': '37678f82cecd4ac6baccb209fc1376d6'}, {'id': 339501, 'name': 'BI权限测试_0118_1244', 'type': 0, 'encryptionKey': '73ef0933128938eb8e7aba095b8dc86a'}, {'id': 339508, 'name': 'SFA_生产灰度_org_normal', 'type': 0, 'encryptionKey': '0d91018b797f9ed9d25f32e68d31bee0'}, {'id': 341998, 'name': '自动化测试_0202_1109_正式', 'type': 0, 'encryptionKey': '398f9e20e1639fb28ec300c1914bf0b7'}, {'id': 353979, 'name': 'SFA自动化测试1(正式CPQ)', 'type': 0, 'encryptionKey': '8b404ea9167b2be0147d4e03c13ad0d4'}, {'id': 354809, 'name': 'QJP灰度20180414-有cpq', 'type': 0, 'encryptionKey': '50c3b2c9c7e4b5e8120be58772b454ad'}, {'id': 357509, 'name': '李星宇20180511', 'type': 0, 'encryptionKey': '7d20934c665b52415522829c42757be2'}, {'id': 367512, 'name': '灰度自动化有CPQ', 'type': 0, 'encryptionKey': 'a77071187a2a78f968185dfdb3e1f393'}, {'id': 367533, 'name': 'SFA_生产灰度_org_CPQ', 'type': 0, 'encryptionKey': '4b94ae7144417b1a5ea8e11cf82fc529'}, {'id': 370063, 'name': '正式租户_20180728_yr', 'type': 0, 'encryptionKey': '29f58431b4c9c85823f7cfc58e6d3de1'}]}}
.登陆网址:xxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 833365, 'username': 'xxxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'e2bc9017004509e4d2556b00b7cc45e8'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f2d7d588d2e4f4a485d023a6e0f05128'}, {'id': 338103, 'name': '1801灰度测试_专业版', 'type': 0, 'encryptionKey': '0050fcf2201221716d01ff4a555875d5'}, {'id': 338104, 'name': '1801灰度测试_企业版', 'type': 0, 'encryptionKey': 'bcfc6bfa051ade101270aeb289851b74'}, {'id': 338107, 'name': '1801灰度测试_企业版_0115', 'type': 0, 'encryptionKey': '9d4b87e8da4e1a8b2b5008d2f81d3e33'}, {'id': 338109, 'name': '1801灰度测试_专业版_0116', 'type': 0, 'encryptionKey': '097386a4534e893a36598e3a629d0ace'}, {'id': 339133, 'name': '0120 线上:测试专用-价格表(旗舰版)', 'type': 0, 'encryptionKey': '37678f82cecd4ac6baccb209fc1376d6'}, {'id': 339501, 'name': 'BI权限测试_0118_1244', 'type': 0, 'encryptionKey': '73ef0933128938eb8e7aba095b8dc86a'}, {'id': 339508, 'name': 'SFA_生产灰度_org_normal', 'type': 0, 'encryptionKey': '0d91018b797f9ed9d25f32e68d31bee0'}, {'id': 341998, 'name': '自动化测试_0202_1109_正式', 'type': 0, 'encryptionKey': '398f9e20e1639fb28ec300c1914bf0b7'}, {'id': 353979, 'name': 'SFA自动化测试1(正式CPQ)', 'type': 0, 'encryptionKey': '8b404ea9167b2be0147d4e03c13ad0d4'}, {'id': 354809, 'name': 'QJP灰度20180414-有cpq', 'type': 0, 'encryptionKey': '50c3b2c9c7e4b5e8120be58772b454ad'}, {'id': 357509, 'name': '李星宇20180511', 'type': 0, 'encryptionKey': '7d20934c665b52415522829c42757be2'}, {'id': 367512, 'name': '灰度自动化有CPQ', 'type': 0, 'encryptionKey': 'a77071187a2a78f968185dfdb3e1f393'}, {'id': 367533, 'name': 'SFA_生产灰度_org_CPQ', 'type': 0, 'encryptionKey': '4b94ae7144417b1a5ea8e11cf82fc529'}, {'id': 370063, 'name': '正式租户_20180728_yr', 'type': 0, 'encryptionKey': '29f58431b4c9c85823f7cfc58e6d3de1'}]}}
.登陆密码:111111
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 833365, 'username': 'xxxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'e2bc9017004509e4d2556b00b7cc45e8'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f2d7d588d2e4f4a485d023a6e0f05128'}, {'id': 338103, 'name': '1801灰度测试_专业版', 'type': 0, 'encryptionKey': '0050fcf2201221716d01ff4a555875d5'}, {'id': 338104, 'name': '1801灰度测试_企业版', 'type': 0, 'encryptionKey': 'bcfc6bfa051ade101270aeb289851b74'}, {'id': 338107, 'name': '1801灰度测试_企业版_0115', 'type': 0, 'encryptionKey': '9d4b87e8da4e1a8b2b5008d2f81d3e33'}, {'id': 338109, 'name': '1801灰度测试_专业版_0116', 'type': 0, 'encryptionKey': '097386a4534e893a36598e3a629d0ace'}, {'id': 339133, 'name': '0120 线上:测试专用-价格表(旗舰版)', 'type': 0, 'encryptionKey': '37678f82cecd4ac6baccb209fc1376d6'}, {'id': 339501, 'name': 'BI权限测试_0118_1244', 'type': 0, 'encryptionKey': '73ef0933128938eb8e7aba095b8dc86a'}, {'id': 339508, 'name': 'SFA_生产灰度_org_normal', 'type': 0, 'encryptionKey': '0d91018b797f9ed9d25f32e68d31bee0'}, {'id': 341998, 'name': '自动化测试_0202_1109_正式', 'type': 0, 'encryptionKey': '398f9e20e1639fb28ec300c1914bf0b7'}, {'id': 353979, 'name': 'SFA自动化测试1(正式CPQ)', 'type': 0, 'encryptionKey': '8b404ea9167b2be0147d4e03c13ad0d4'}, {'id': 354809, 'name': 'QJP灰度20180414-有cpq', 'type': 0, 'encryptionKey': '50c3b2c9c7e4b5e8120be58772b454ad'}, {'id': 357509, 'name': '李星宇20180511', 'type': 0, 'encryptionKey': '7d20934c665b52415522829c42757be2'}, {'id': 367512, 'name': '灰度自动化有CPQ', 'type': 0, 'encryptionKey': 'a77071187a2a78f968185dfdb3e1f393'}, {'id': 367533, 'name': 'SFA_生产灰度_org_CPQ', 'type': 0, 'encryptionKey': '4b94ae7144417b1a5ea8e11cf82fc529'}, {'id': 370063, 'name': '正式租户_20180728_yr', 'type': 0, 'encryptionKey': '29f58431b4c9c85823f7cfc58e6d3de1'}]}}
.登陆账户:xxxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 381310, 'username': 'xxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 102, 'name': '仁科互动', 'type': 0, 'encryptionKey': '3a144f9ae5aa4a8445e40e079fb4811d'}, {'id': 166912, 'name': '销售易ST租户', 'type': 0, 'encryptionKey': 'aa0506583e82c8b49d24173cfaedcaa9'}, {'id': 188443, 'name': '无限挑战', 'type': 0, 'encryptionKey': 'fe42689ef2e210423b02501dc7a93699'}, {'id': 204952, 'name': '大中电器(线上环境)', 'type': 0, 'encryptionKey': '141aa04a935c782d3bffbce3cbb833a4'}, {'id': 206453, 'name': '销售易灰度测试-旗舰版', 'type': 0, 'encryptionKey': 'e61a0119decfdebf644043e79533a754'}, {'id': 223528, 'name': '销售易灰度测试-企业版', 'type': 0, 'encryptionKey': '6df8da414b401867f16628bc8f4aa6d3'}, {'id': 307913, 'name': '高新兴项目', 'type': 0, 'encryptionKey': '814aac87f8791ba0a839b83afc0d6dce'}, {'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'c4a2b12eff1c7d2b33ca792bc04c57fb'}, {'id': 313101, 'name': '富士康生产灰度_20170920_1354', 'type': 0, 'encryptionKey': '7811ba8ea37f14c7534b794c09bf7112'}, {'id': 314604, 'name': '生产灰度_20170923_1122', 'type': 0, 'encryptionKey': 'c7443d31fc5d360f5664e258119121bd'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f108b2ce59ca912261be6fabe59f7965'}, {'id': 338108, 'name': '20180116俊平灰度租户', 'type': 0, 'encryptionKey': '0a8d7d7df74d8c45413d4bee7f384dd5'}, {'id': 367507, 'name': '20180707灰度-订单-非cpq-变更单', 'type': 0, 'encryptionKey': '73793445f6fc8f4de61ce9db2e996b77'}, {'id': 368326, 'name': '20180728-正式-变更单', 'type': 0, 'encryptionKey': '0135215361bf4332bc9fc2a23a266174'}]}}
.登陆账户:xxxx
登陆网址:xxxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 833365, 'username': 'xxxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'e2bc9017004509e4d2556b00b7cc45e8'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f2d7d588d2e4f4a485d023a6e0f05128'}, {'id': 338103, 'name': '1801灰度测试_专业版', 'type': 0, 'encryptionKey': '0050fcf2201221716d01ff4a555875d5'}, {'id': 338104, 'name': '1801灰度测试_企业版', 'type': 0, 'encryptionKey': 'bcfc6bfa051ade101270aeb289851b74'}, {'id': 338107, 'name': '1801灰度测试_企业版_0115', 'type': 0, 'encryptionKey': '9d4b87e8da4e1a8b2b5008d2f81d3e33'}, {'id': 338109, 'name': '1801灰度测试_专业版_0116', 'type': 0, 'encryptionKey': '097386a4534e893a36598e3a629d0ace'}, {'id': 339133, 'name': '0120 线上:测试专用-价格表(旗舰版)', 'type': 0, 'encryptionKey': '37678f82cecd4ac6baccb209fc1376d6'}, {'id': 339501, 'name': 'BI权限测试_0118_1244', 'type': 0, 'encryptionKey': '73ef0933128938eb8e7aba095b8dc86a'}, {'id': 339508, 'name': 'SFA_生产灰度_org_normal', 'type': 0, 'encryptionKey': '0d91018b797f9ed9d25f32e68d31bee0'}, {'id': 341998, 'name': '自动化测试_0202_1109_正式', 'type': 0, 'encryptionKey': '398f9e20e1639fb28ec300c1914bf0b7'}, {'id': 353979, 'name': 'SFA自动化测试1(正式CPQ)', 'type': 0, 'encryptionKey': '8b404ea9167b2be0147d4e03c13ad0d4'}, {'id': 354809, 'name': 'QJP灰度20180414-有cpq', 'type': 0, 'encryptionKey': '50c3b2c9c7e4b5e8120be58772b454ad'}, {'id': 357509, 'name': '李星宇20180511', 'type': 0, 'encryptionKey': '7d20934c665b52415522829c42757be2'}, {'id': 367512, 'name': '灰度自动化有CPQ', 'type': 0, 'encryptionKey': 'a77071187a2a78f968185dfdb3e1f393'}, {'id': 367533, 'name': 'SFA_生产灰度_org_CPQ', 'type': 0, 'encryptionKey': '4b94ae7144417b1a5ea8e11cf82fc529'}, {'id': 370063, 'name': '正式租户_20180728_yr', 'type': 0, 'encryptionKey': '29f58431b4c9c85823f7cfc58e6d3de1'}]}}
.登陆账户:xxxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 381310, 'username': 'xxxxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 102, 'name': '仁科互动', 'type': 0, 'encryptionKey': '3a144f9ae5aa4a8445e40e079fb4811d'}, {'id': 166912, 'name': '销售易ST租户', 'type': 0, 'encryptionKey': 'aa0506583e82c8b49d24173cfaedcaa9'}, {'id': 188443, 'name': '无限挑战', 'type': 0, 'encryptionKey': 'fe42689ef2e210423b02501dc7a93699'}, {'id': 204952, 'name': '大中电器(线上环境)', 'type': 0, 'encryptionKey': '141aa04a935c782d3bffbce3cbb833a4'}, {'id': 206453, 'name': '销售易灰度测试-旗舰版', 'type': 0, 'encryptionKey': 'e61a0119decfdebf644043e79533a754'}, {'id': 223528, 'name': '销售易灰度测试-企业版', 'type': 0, 'encryptionKey': '6df8da414b401867f16628bc8f4aa6d3'}, {'id': 307913, 'name': '高新兴项目', 'type': 0, 'encryptionKey': '814aac87f8791ba0a839b83afc0d6dce'}, {'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'c4a2b12eff1c7d2b33ca792bc04c57fb'}, {'id': 313101, 'name': '富士康生产灰度_20170920_1354', 'type': 0, 'encryptionKey': '7811ba8ea37f14c7534b794c09bf7112'}, {'id': 314604, 'name': '生产灰度_20170923_1122', 'type': 0, 'encryptionKey': 'c7443d31fc5d360f5664e258119121bd'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f108b2ce59ca912261be6fabe59f7965'}, {'id': 338108, 'name': '20180116俊平灰度租户', 'type': 0, 'encryptionKey': '0a8d7d7df74d8c45413d4bee7f384dd5'}, {'id': 367507, 'name': '20180707灰度-订单-非cpq-变更单', 'type': 0, 'encryptionKey': '73793445f6fc8f4de61ce9db2e996b77'}, {'id': 368326, 'name': '20180728-正式-变更单', 'type': 0, 'encryptionKey': '0135215361bf4332bc9fc2a23a266174'}]}}
.登陆密码:111111
登陆网址:xxxxx
202
测试用例中login的返回值:{'status': 202, 'statusText': '成功', 'data': {'userid': 381310, 'username': 'xxxxx', 'fromOther': '', 'thirdPartyType': '', 'companyList': [{'id': 102, 'name': '仁科互动', 'type': 0, 'encryptionKey': '3a144f9ae5aa4a8445e40e079fb4811d'}, {'id': 166912, 'name': '销售易ST租户', 'type': 0, 'encryptionKey': 'aa0506583e82c8b49d24173cfaedcaa9'}, {'id': 188443, 'name': '无限挑战', 'type': 0, 'encryptionKey': 'fe42689ef2e210423b02501dc7a93699'}, {'id': 204952, 'name': '大中电器(线上环境)', 'type': 0, 'encryptionKey': '141aa04a935c782d3bffbce3cbb833a4'}, {'id': 206453, 'name': '销售易灰度测试-旗舰版', 'type': 0, 'encryptionKey': 'e61a0119decfdebf644043e79533a754'}, {'id': 223528, 'name': '销售易灰度测试-企业版', 'type': 0, 'encryptionKey': '6df8da414b401867f16628bc8f4aa6d3'}, {'id': 307913, 'name': '高新兴项目', 'type': 0, 'encryptionKey': '814aac87f8791ba0a839b83afc0d6dce'}, {'id': 311970, 'name': '富士康定制(含cpq)', 'type': 0, 'encryptionKey': 'c4a2b12eff1c7d2b33ca792bc04c57fb'}, {'id': 313101, 'name': '富士康生产灰度_20170920_1354', 'type': 0, 'encryptionKey': '7811ba8ea37f14c7534b794c09bf7112'}, {'id': 314604, 'name': '生产灰度_20170923_1122', 'type': 0, 'encryptionKey': 'c7443d31fc5d360f5664e258119121bd'}, {'id': 337503, 'name': '20180110生成灰度_合同通刷', 'type': 0, 'encryptionKey': 'f108b2ce59ca912261be6fabe59f7965'}, {'id': 338108, 'name': '20180116俊平灰度租户', 'type': 0, 'encryptionKey': '0a8d7d7df74d8c45413d4bee7f384dd5'}, {'id': 367507, 'name': '20180707灰度-订单-非cpq-变更单', 'type': 0, 'encryptionKey': '73793445f6fc8f4de61ce9db2e996b77'}, {'id': 368326, 'name': '20180728-正式-变更单', 'type': 0, 'encryptionKey': '0135215361bf4332bc9fc2a23a266174'}]}}
. ========================== 8 passed in 18.29 seconds ==========================

如果参数user有2个数据,参数psw有2个数据,参数uri有2个数据,那么组合起来的案例是两个相乘,也就是组合2*2*2 = 8个用例

作者:含笑半步颠√

博客链接:https://www.cnblogs.com/lixy-88428977

声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。

 

pytest_函数传参和firture传参数request的更多相关文章

  1. pytest十一:函数传参和 firture 传参数 request

    为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数.比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登录函数就行.但是登录 ...

  2. 函数传参和firture传参数request

    前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数.比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行.但 ...

  3. pytest 12 函数传参和fixture传参数request

    前沿: 有的case,需要依赖于某些特定的case才可以执行,比如,登陆获取到的cookie,每次都需要带着他,为了确保是同一个用户,必须带着和登陆获取到的同一个cookies. 大部分的用例都会先登 ...

  4. pytest文档14-函数传参和firture传参数request

    前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数. 比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登陆函数就行. ...

  5. python中函数的参数:必传参数(位置参数)、默认值参数、参数组传参、关键字传参

    1.必传参数也叫做位置参数,因为必填,也必须对应位置 2.默认值参数如上图的word 3.参数组参数:传进去的是0个.或多个value的形式,,,和位置参数有点像,只传value值,但是没有限制个数 ...

  6. C/C++函数调用时传参过程与可变参数实现原理

    C/C++函数调用时传参过程与可变参数实现原理 C语言的经典swap问题 在学习C语言的时候,我们大都遇到过一些经典例题,这些经典例题背后所代表的是往往是C/C++背后的一些运行原理,比如下面这个示例 ...

  7. mixin 在传参中可以出现 参数 在类内部可以定义 作用域

    mixin 在传参中可以出现 参数  在类内部可以定义

  8. C# WebApi 根据实体类检查传参或字典检查参数

    根据实体类或字典检查传参,是否缺少参数并返回缺少参数 值类型必须声明可空 /// <summary> /// 根据 Dictionary<string, string> 得到实 ...

  9. Vue路由传参及传参后刷新导致参数消失处理

    项目功能需要,要从列表页跳转到第三方提供的URL上(这里第三方页面我是通过iframe引入在详情页,目的是点击返回时可以通过keepAlive让列表页不刷新,如果不通过iframe直接跳第三方链接,那 ...

随机推荐

  1. 格式化输出(%用法和fomat用法)

    一:%用法 1.整数输出 %o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制 2.浮点数输出 %f ——保留小数点后面六位有效数字 %.3f,保留3位小数位%e ——保留 ...

  2. hive基础知识一

    1. Hive是什么 1.1 hive的概念 Hive:由Facebook开源,用于解决海量(结构化日志)的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表 ...

  3. 第10组 Alpha冲刺(1/4)

    队名:凹凸曼 组长博客 作业博客 组员实践情况 童景霖 过去两天完成了哪些任务 文字/口头描述 学习Android studio和Java,基本了解APP前端的制作 完善项目APP原型 展示GitHu ...

  4. Linux中git用https连接时不用每次输入密码

    应用场景: 比如每天凌晨执行crontab对应的项目部署脚本(使用git作为项目的版本控制). 如果不这样做会怎么样? 每次部署都要git clone并输入对应的用户名和密码,需要人工.这样就显得很不 ...

  5. 微信小程序 input 的 type属性 text、number、idcard、digit 区别

    微信小程序的 input 有个属性叫 type,这个 type 有几个可选值: text:不必解释 number:数字键盘(无小数点) idcard:数字键盘(无小数点.有个 X 键) digit:数 ...

  6. Centos7 搭建wordpress

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. 搭建WordP ...

  7. 【转】Redis哨兵(Sentinel)模式

    主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用.这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式. 一.哨兵 ...

  8. sql 在查询到的语句基础上添加行号

    正常查询语句: SELECT TagName FROM ps_status a WHERE a.TagName LIKE "DTmk_zybf%1bxxjcqh.PV" 查询结果: ...

  9. xcode简单教程

    1.使用Xcode软件.Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行.也能开发ios程序等,是一种软件.在windows上类似这种能编c语言的还 ...

  10. python办公自动化(一)PPTX

    简介: python-pptx是python处理PPT的一个库,注重的是读和写,无法导出,没有渲染功能. 办公自动化,说的是大了一点,但是最常见的office三件套,word,excel,ppt.这还 ...