热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

7200设置pgpc接口_HttpRunnerManager接口自动化测试—环境搭建

HttpRunner简介HttpRunner是一款面向HTTP(S)协议的通用测试框架,只需编写维护一份YAMLJSON脚本,即可实现自动化测试、性能测

HttpRunner

简介

HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

  • 项目地址:https://github.com/HttpRunner/HttpRunner

  • 中文手册:http://cn.httprunner.org

框架流程

f239f63735d2c215e108d49749123abf.png

核心特性

  • 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求

  • 测试用例与代码分离,采用YAML/JSON的形式描述测试场景,保障测试用例具备可维护性

  • 测试用例支持分层机制,充分实现测试用例的复用

  • 测试用例支持参数化和数据驱动机制

  • 使用 skip 机制实现对测试用例的分组执行控制

  • 测试请求支持完善的 hook 机制

  • 支持热加载机制,在文本测试用例中轻松实现复杂的动态计算逻辑

  • 基于 HAR 实现接口录制和用例生成功能(har2case)

  • 结合 Locust 框架,无需额外的工作即可实现分布式性能测试

  • 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合

  • 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录

  • 具有可扩展性,便于扩展实现 Web 平台化(HttpRunnerManager)

下载安装

使用pip命令进行安装

pip install httprunner

安装后校验是否安装成功,可以使用如下命令进行校验

hrun -V
1.4.2

har2case -V
0.1.8

若版本号正常显示,则说明安装正常。

入门使用

测试场景

  • 测试接口:http://httpbin.org/get

  • 接口类型:GET

用例设计

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才算通过,否则失败.

相关资料

  • yaml教程

  • HttpRunner用例结构

运行测试

使用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报告如下:

b886700f2d6c6f818db8330b1344bf1b.png

HttpRunnerManager

简介

HttpRunnerManager是基于HttpRunner的接口自动化测试平台,该工具是对 HttpRunner的包装和Web图形化, 另外还增加了一些新概念(项目/模块)用来组织用例。如果对yaml语法格式不熟悉,以及对于httprunner命令不熟悉的可以使用该平台执行接口自动化测试。

项目地址:https://github.com/HttpRunner/HttpRunnerManager

核心特性

  • 项目管理:新增项目、列表展示及相关操作,支持用例批量上传(标准化的HttpRunner json和yaml用例脚本)

  • 模块管理:为项目新增模块,用例和配置都归属于module,module和project支持同步和异步方式

  • 用例管理:分为添加config与test子功能,config定义全部变量和request等相关信息 request可以为公共参数和请求头,也可定义全部变量

  • 场景管理:可以动态加载可引用的用例,跨项目、跨模块,依赖用例列表支持拖拽排序和删除

  • 运行方式:可单个test,单个module,单个project,也可选择多个批量运行,支持自定义测试计划,运行时可以灵活选择配置和环境,

  • 分布执行:单个用例和批量执行结果会直接在前端展示,模块和项目执行可选择为同步或者异步方式,

  • 环境管理:可添加运行环境,运行用例时可以一键切换环境

  • 报告查看:所有异步执行的用例均可在线查看报告,可自主命名,为空默认时间戳保存,

  • 定时任务:可设置定时任务,遵循crontab表达式,可在线开启、关闭,完毕后支持邮件通知

  • 持续集成:jenkins对接,开发中。。。

下载安装

  1. 安装mysql数据库服务端(推荐5.7+),并设置为utf-8编码,创建相应HttpRunnerManager数据库,设置好相应用户名、密码,启动mysql。

  2. 将HttpRunnerManager下载下来,解压放在任意盘符位置,例如我放在D盘根目录,并重命名为HttpRunnerManager

环境配置

HttpRunnerManager支持分布式执行,模块和项目执行可选择为同步或者异步方式,因此需要安装相关依赖工具。

erlang

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

下载地址:http://www.erlang.org/downloads

Rabbitmq

RabbitMQ 是一个由 Erlang 语言开发的 AMQP(高级消息队列协议)的开源实现。它支持多个消息传递协议。RabbitMQ可以部署在分布式和联合配置中,以满足高规模、高可用性的需求,另外安装rabbitmq需要先安装erlang

下载地址:http://www.rabbitmq.com/download.html 下载后双击rabbitmq-server-3.7.7.exe文件进行安装。

安装完成后如下图如所示,选中RabbitMQ Service -start 然后以管理员身份运行。

3d65940204a7696c70b14b4f884fc9a4.png

可以通过访问 http://localhost:15672 进行测试,默认的登陆账号为:guest,密码为:guest。

79d663725c1c75f78484cfc6a3ed4e22.png

相关资料: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配置

修改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行,需要修改一下


#将这行代码进行更新


#更新后的代码

数据库迁移

python manage.py makemigrations ApiManager #生成数据迁移脚本
python manage.py migrate #应用到db生成数据表

创建超级用户,用户后台管理数据库,并按提示输入相应用户名,密码,邮箱。

python manage.py createsuperuser

启动服务

输入下面命令启动服务

python manage.py runserver

服务启动成功之后,打开如下地址,可以进入到不同的页面。

  • 注册: http://127.0.0.1:8000/api/register/

49395e816d8836884c522273a7e56d84.png

  • 登录: http://127.0.0.1:8000/api/login/

bd2c7789254d3be2c9cd7b924e64f65d.png

  • 后台数据库管理:http://127.0.0.1:8000/admin/

bef7e084ba80556578e0b7969912b958.png

注册登录之后就可以看到平台的界面,接下来就可以创建接口测试的项目和用例了。

09f8cced72bf631c457950eea7a79c2f.png

更多干货

  • 接口Mock利器——Json Server

  • Locust接口性能测试

  • Python接口测试数据管理

  • Restful接口开发与测试—接口测试

  • Restful接口开发与测试—集成Swagger

  • Restful接口开发与测试—Django安装

  • Restful接口开发与测试—Rest简介

  • Python接口自动化——Requests基础功能

  • Python接口自动化——Requests

  • Jmeter+Ant+Jenkins接口自动化测试平台

  • Postman批量执行与集成Jenkins

  • Mac 环境Appium自动化测试环境搭建

  • 众里寻他千百度—Appium Android 元素定位方式

  • Android自动化测试设备弹窗处理

  • Appium iOS 元素定位与操作

  • Ubuntu+Docker+STF环境搭建

  • Anyproxy抓包代理安装使用

  • Python自动化日志收集

821b996d29a5d1516db6aa0ca266fdb4.png

关注公众号,更多干货秒得到




推荐阅读
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • 在package.json中有如下两个对象:husky:{hooks:{pre-commit:lint-staged}},lint-staged:{src** ... [详细]
  • ps:写的第一个,不足之处,欢迎拍砖---只是想用自己的方法一步步去实现一些框架看似高大上的小功能(比如说模型中的toArraytoJsonsetAtt ... [详细]
  • jenkins用户手册15进程内脚本认证
    jenkins和一些插件,允许用户在jenkins中执行groovy脚本。这些脚本功能是由下面支持的:.脚本控制台.jenkins通道.扩展的邮件插件.groovy插件-当 ... [详细]
  • 解决jenkins下载慢的问题:替换下载源
    流程前两步与官网一致,然后点击下面的镜像网站华为镜像清华镜像进入选择需要的版本,右键复制链接在后面添加链接即可yum-yinstallhttps:m ... [详细]
  • react项目无法编译2.npm错误信息: ... [详细]
  • syncd是一款开源的代码部署工具,它具有简单、高效、易用等特点,可以提高团队的工作效率. ... [详细]
author-avatar
将登太行的2602939913
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有