HttpTesting
Project description
HttpTesting
HttpTesting 是HTTP(S) 协议测试框架,通过YAML来编写测试用例;支持通过pip直接从PyPi安装,支持命令行运行代码,不固定结构,通过命令生成脚手架。
快速使用
virtualenv虚拟环境
-
pip install virtualenv
-
virtualenv demo_env
-
命令行模式切换到虚拟环境 ..../scripts/activate.bat
-
activate.bat 激活虚拟环境
pip安装
安装方法:
- pip install HttpTesting==1.0.26
已安装HttpTesting包,通过pip命令进行更新
-
pip list 查看HttpTesting安装包版本信息
-
pip install --upgrade HttpTesting==1.0.26
HttpTesting amt 或 AMT命令
-
amt --config set 此命令用来设置框架基本配置
-
amt --file template.yaml 执行YAML用例,支持绝对或相对路径。
-
amt --dir testcase 批量执行testcase目录下的YAML用例,支持绝对路径或相对路径。
-
amt --startproject demo 生成脚手架demo目录
-
amt --har D:\httphar.har 根据har文件,生成测试用例YAML.
用例编写
YAML用例格式
TESTCASE:
#Case1由两个请求组成的场景
Case1:
-
Desc:用例详细描述
-
Url: /login/login
Method: GET
Headers:
content-type: "application/json"
cache-control: "no-cache"
Data:
name: "test"
pass: "test123"
InPara: ""
OutPara:
"$H_token$": result.data
Assert:
- eq: [result.status, 'success']
-
Url: /cloudfi/api/store/batchhandle/store
Method: GET
Headers:
content-type: "application/json"
cache-control: "no-cache"
Data:
name: "test"
pass: "test123"
InPara: ""
OutPara:
"$H_token$": result.data
Assert:
- eq: [result.status, 'success']
-
通过OutPara字段来做公共变量,给其它接口调用,方法:
"$H_token $": result.data result.data 是请求结果,返回的嵌套级别
result:请求影响res.json() cookie:请求影响cookies 字典类型 res: 请求影响对象 Headers: 请求影响头
参数说明
- InPara: 用来传头信息变量,默认为""
- "$H_token $": H_开头代表是要进行信息头传参
- $D_token $: D_开头代表是要进行data数据传参
常用四种对象(通常做参数变量时使用)
- res: 请求Response对象
- result: Response.json() 或 Response.text
- cookie: Response.cookie 响应cookie字典对象; 当做为参数时如果cookie.SESSION这样的写法代表取cookie中的SESSION对象. 如果只写cookie,会解析成"SESSION=xxxxxxx; NAME=xxxxxx"
- headers: Response.headers 响应头字典对象
用例执行
- 1、生成脚手架
- 2、编写脚手架中testcase下YAML模版用例
- 3、切换到testcase目录
- 4、amt --dir testcase 自动运行testcase下YAML用例
- 5、自动生成测试报告Html
框架基本配置
- 1、通过命令打开框架config.yaml
- 2、amt --config set
- 3、修改基本配置,并保存
全局环境变量
- 1、通过--config命令配置全局环境变量
- 2、amt --config gl
- 3、修改配置需要谨慎
代码打包与上传PyPi
通过setuptools工具进行框架打包,需要编写setup.py
from setuptools import setup, find_packages, command
setup(
name='HttpTesting',#应用名称
version='1.0.16',#版本号
description='HttpTesting',#描述
long_description="长描述", #此描述显示到PyPi页
long_description_content_type='text/markdown',
author='天枢',#作者
author_email='lengyaohui@163.com',
url='https://gitlab.acewill.cn/lengyaohui/amtesting.git',
license='Apache 2.0',
python_requires='!=3.0.,!=3.1.,!=3.2.,!=3.3.,<4.0.',
packages=find_packages(),#查找包方法
package_data={
'HttpTesting':[
'config/*.yaml',
'testcase/*.yaml',
'report/*.html',
'report/*.xlsx',
],
'':['*.py'],
},
#依赖包
install_requires=[
'ddt==1.1.3',
'Flask==1.0.2',
'PyYAML==3.12',
'requests==2.18.4',
'requests-toolbelt==0.8.0',
],
#排出打包文件
exclude_package_data={
'':['README.txt'],
},
#PyPi页面左侧显示
classifiers=[
'Development Status::Beta',
'Programming Language::Python::3.4',
'Programming Language::Python::3.5',
'Programming Language::Python::3.6',
'Programming Language::Python::3.7',
],
#命令行使用命令
entry_points={
'console_scripts':[
'amt=HttpTesting.main:run_min',
'AMT=HttpTesting.main.run_min',
],
},
#发布时执行的cmd命令
cmdclass={
'upload':从Command继承的类,
},
)
-
打包:python3 setup.py bdist_wheel
-
上传PyP: 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 Distributions
Built Distribution
Hashes for HttpTesting-1.0.28-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 776c19549456edf3ee57542391263ff80c104541cdf0b4f4e8e5ee4f31924fd6 |
|
MD5 | 236123d6ff72db3786fa9321cf060114 |
|
BLAKE2b-256 | 2c526ae2584b49831318bfa37953c44b7b095b0de913907a47e7fb15edd4d47f |