需求
使用requests库、pytest库、threading库, 对接口http://httpbin.org/json、https://postman-echo.com/get进行功能测试和压力测试
代码
(1)功能测试
import requests
import pytest
class UrlData(object):
def __init__(self
):
self
.tltle_url
='http://httpbin.org/json'
self
.name_url
='https://postman-echo.com/get'
@pytest
.fixture
(params
=[{'name':'lin'},{'name':'huang'}])
def test_data(request
):
return request
.param
class TestClass(object):
@pytest
.fixture
(scope
='session')
def ud(self
):
return UrlData
()
def test_title(self
,ud
):
resp
=requests
.get
(ud
.tltle_url
)
assert resp
.status_code
==200,'HTTP返回码不等于200'
assert resp
.json
().get
('slideshow').get
('title')=='Sample Slide Show','标题与预期值不符'
def test_name(self
,ud
,test_data
):
resp
=requests
.get
(ud
.name_url
,params
=test_data
)
assert resp
.status_code
==200,'HTTP返回码不等于200'
assert resp
.json
().get
('args').get
('name')==test_data
.get
('name'),'返回名称与传入值不相等'
if __name__
=='__main__':
pytest
.main
()
(2)压力测试
import requests
import pytest
import threading
class UrlData(object):
def __init__(self
):
self
.tltle_url
='http://httpbin.org/json'
class TestClass(object):
@pytest
.fixture
(scope
='session')
def ud(self
):
return UrlData
()
def title(self
,ud
):
resp
=requests
.get
(ud
.tltle_url
)
assert resp
.status_code
==200,'HTTP返回码不等于200'
assert resp
.json
().get
('slideshow').get
('title')=='Sample Slide Show','标题与预期值不符'
def test_title(self
,ud
):
t1
=threading
.Thread
(target
=self
.title
,args
=(ud
,))
t2
=threading
.Thread
(target
=self
.title
,args
=(ud
,))
t1
.start
()
t2
.start
()
if __name__
=='__main__':
pytest
.main
()
转载请注明原文地址: https://lol.8miu.com/read-26528.html