HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON
脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
使用pip命令进行安装
pip install httprunner
安装后校验是否安装成功,可以使用如下命令进行校验
hrun -V
1.4.2
har2case -V
0.1.8
若版本号正常显示,则说明安装正常。
HttpRunner 的测试用例支持两种文件格式:YAML 和 JSON。这里以YAML为例。
test_httpbin.yml
- config:
name: httpbin api test
request:
base_url: http://www.httpbin.org
- test:
name: get request
request:
url: /get
method: GET
validate:
- eq: [status_code,200]
config
:作为整个测试用例集的全局配置项test
:对应单个测试用例name
这个test的名字request
这个test具体发送http请求的各种信息, 如下:url
请求的路径 (若config中有定义base_url, 则完整路径是base_url + url )method
请求方法 POST, GET等等validate
完成请求后, 所要进行的验证内容. 所有验证内容均通过该test才算通过,否则失败.相关资料
使用hrun
执行测试,如下所示:
C:\Users\Shuqing>hrun D:\api_test\HttpRunner_test\test_httpbin.yml
get request
INFO GET /get
INFO status_code: 200, response_time(ms): 1967.35 ms, response_length: 273 bytes
INFO start to validate.
.
----------------------------------------------------------------------
Ran 1 test in 1.976s
OK
INFO Start to render Html report ...
INFO Generated Html report: C:\Users\Shuqing\reports\1533092144.html
打开html报告如下:
HttpRunnerManager是基于HttpRunner
的接口自动化测试平台,该工具是对 HttpRunner
的包装和Web图形化, 另外还增加了一些新概念(项目/模块)用来组织用例。如果对yaml语法格式不熟悉,以及对于httprunner命令不熟悉的可以使用该平台执行接口自动化测试。
项目地址:https://github.com/HttpRunner/HttpRunnerManager
crontab
表达式,可在线开启、关闭,完毕后支持邮件通知HttpRunnerManager
数据库,设置好相应用户名、密码,启动mysql。HttpRunnerManager
HttpRunnerManager支持分布式执行,模块和项目执行可选择为同步或者异步方式,因此需要安装相关依赖工具。
Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。
下载地址:http://www.erlang.org/downloads
RabbitMQ 是一个由 Erlang 语言开发的 AMQP(高级消息队列协议)的开源实现。它支持多个消息传递协议。RabbitMQ可以部署在分布式和联合配置中,以满足高规模、高可用性的需求,另外安装rabbitmq需要先安装erlang
。
下载地址:http://www.rabbitmq.com/download.html 下载后双击rabbitmq-server-3.7.7.exe
文件进行安装。
安装完成后如下图如所示,选中RabbitMQ Service -start
然后以管理员身份运行。
可以通过访问 http://localhost:15672 进行测试,默认的登陆账号为:guest,密码为:guest。
相关资料:RabbitMQ Windows环境安装官方手册
打开HttpRunnerManager
项目的setting.py
文件,进行如下配置
if DEBUG:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'HttpRunnerManager', # 新建数据库名
'USER': 'root', # 数据库登录名
'PASSWORD': '', # 数据库登录密码
'HOST': '127.0.0.1', # 数据库所在服务器ip地址
'PORT': '3306', # 监听端口 默认3306即可
}
}
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'), # 静态文件额外目录
)
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'HttpRunnerManager', # 新建数据库名
'USER': 'root', # 数据库登录名
'PASSWORD': '', # 数据库登录密码
'HOST': '127.0.0.1', # 数据库所在服务器ip地址
'PORT': '3306', # 监听端口 默认3306即可
}
}
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
修改work配置
djcelery.setup_loader()
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'amqp://guest:guest@127.0.0.1:5672//' if DEBUG else 'amqp://guest:guest@127.0.0.1:5672//'
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_RESULT_EXPIRES = 7200 # celery任务执行结果的超时时间,
CELERYD_CONCURRENCY = 1 if DEBUG else 10 # celery worker的并发数 也是命令行-c指定的数目 根据服务器配置实际更改 一般25即可
CELERYD_MAX_TASKS_PER_CHILD = 100 # 每个worker执行了多少任务就会死掉,我建议数量可以大一些,比如200
EMAIL_SEND_USERNAME = 'xxxx@163.com' # 定时任务报告发送邮箱,支持163,qq,sina,企业qq邮箱等,注意需要开通smtp服务
EMAIL_SEND_PASSWORD = 'XXX' # 邮箱密码
打开cmd命令窗口,切换到HttpRunnerManager
目录,然后执行下面命令,自动安装需要的依赖库文件。
pip install -r requirements.txt
由于该项目已经停止更新维护,导致部分样式css文件地址失效。修改HttpRunnerManager\templates
下的base.html
文件 第23
行,需要修改一下
#将这行代码进行更新
<link rel="stylesheet" href="http://cdn.amazeui.org/amazeui/2.7.2/css/amazeui.min.css"/>
#更新后的代码
<link rel="stylesheet" href="http://cdn.bootcss.com/amazeui/2.7.2/css/amazeui.min.css"/>
python manage.py makemigrations ApiManager #生成数据迁移脚本
python manage.py migrate #应用到db生成数据表
创建超级用户,用户后台管理数据库,并按提示输入相应用户名,密码,邮箱。
python manage.py createsuperuser
输入下面命令启动服务
python manage.py runserver
服务启动成功之后,打开如下地址,可以进入到不同的页面。
注册登录之后就可以看到平台的界面,接下来就可以创建接口测试的项目和用例了。