swagger
Project description
生成pytest用例
install
python3 -m venv .myenv
source .myenv/bin/activate
#deactivate 退出
1. 初始化
Swagger2Tests --init --target='./'
初始化项目时会在指定的target
目录,初始化项目,并且生成一些基础文件。
- constants 可配置一些公共参数 比如 domain等
- helpers 一些通用方法
- templates 生成模板,可进行自定义修改
生成测试文件
Swagger2Tests --swagger='https://swagger.json' --target='./'
- swagger 参数支持文件和url
当前会按请求参数类型,一次性生成固定值,如果需要每次请求都动态更改,则可以在文件里进行修改,使用Helper类的方法
def test_chargingUsingPOST(self):
# 计算费用
requestBody = {
"appid": REQUEST_APPID,
"bizContent": {
'amount': Helper.get_random_float(),
'gasId': 'string',
'gunNo': Helper.get_random_int(),
'oilNo': Helper.get_random_int()
},
"sign": "string",
"timestamp": Helper.get_random_datetime()
}
用pytest 进行接口测试
- 在当前目录创建test_suits目录
- 在该目录内创建符合pytest扫描规则的测试文件,下面是个示例
test_detail.py
.
from apps.testCases.goods.items.DetailCase import *
class TestDetail:
def test_detail(self):
DetailCase.detailUsingGET()
以上只是一个示例,描述了对单个接口的测试。实际上,你可以处理接口返回,进行串联,模拟某个功能场景的测试集合。
- 编写pytest执行文件
import pytest
if __name__ == '__main__':
pytest.main(['-s'])
执行单接口或场景接口集合测试
python3 pytest_main.py
- 使用pytest_main.py 执行的意义在于,避免有使用自定义包,因目录层级而存在的包导入问题
结合locust进行压力测试
- 编写locust用例文件
from locust import HttpUser,task
from locust.clients import LocustResponse
from apps.testCases.goods.items.DetailCase import *
from Swagger2Tests.helpers.helper import RequestInfo
class TestUser(HttpUser):
min_wait = 5 * 1000
max_wait = 10 * 1000
@task
def getGoodsDetail(self):
r:RequestInfo = DetailCase.detailUsingGET(self.host)
response:LocustResponse
with self.client.request(r.request_method,r.request_path,
data=r.request_body,params=r.request_params,
catch_response =True
) as response:
if response.status_code == 200:
response.success()
else:
response.failure("Request failed with status code: %s" % response.status_code)
development
- test
python3 -m tests.test_run --swagger='./tests/oil_detail.json'
- compile and deploy
python3 setup.py sdist bdist_wheel
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Swagger2Tests-1.2.1.tar.gz
(12.6 kB
view hashes)
Built Distribution
Close
Hashes for Swagger2Tests-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bbe80956d783b4d360619ba632bc74cab8153324b0e2d9448e235f56f27b6bc |
|
MD5 | e468997c7afae5602cc4313ca8c33602 |
|
BLAKE2b-256 | e901ffc3abb130c78778daff64bb48156c7e6dc5f64e1a114d6e5559c8c8f693 |