当前位置: 首页 > wzjs >正文

导航网站php深圳网站建设公司流程

导航网站php,深圳网站建设公司流程,采集伪原创wordpress,办公管理系统软件1. HttpRunner 介绍 是什么:基于 Python 的开源接口自动化测试框架,支持 HTTP(S)/WebSocket/RPC 等协议,集成了接口测试、性能测试、持续集成等功能。 核心特性: 用例格式:支持 YAML/JSON/Python 编写测试用例。 链式…

1. HttpRunner 介绍

  • 是什么:基于 Python 的开源接口自动化测试框架,支持 HTTP(S)/WebSocket/RPC 等协议,集成了接口测试、性能测试、持续集成等功能。

  • 核心特性

    • 用例格式:支持 YAML/JSON/Python 编写测试用例。

    • 链式调用:支持接口间的参数关联(提取响应数据供后续接口使用)。

    • 数据驱动:支持 CSV、Excel、数据库等多种数据源。

    • 多协议支持:HTTP/WebSocket/私有协议扩展。

    • 性能测试:集成 Locust 实现压测。

  • 适用场景:接口自动化测试、微服务测试、持续集成(CI/CD)。


2. 环境搭建

安装 HttpRunner

bash

复制

pip install httprunner

验证安装

bash

复制

hrun -V  # 输出版本号(如 4.0+)

3. 项目结构

通过脚手架快速生成项目:

bash

复制

hrun --startproject demo_project  # 生成标准项目结构

生成的目录结构:

复制

demo_project/├── testcases/        # 存放测试用例(YAML/JSON/Python)├── reports/          # 测试报告├── env/              # 环境变量配置├── data/             # 测试数据(CSV/Excel)└── debugtalk.py      # 自定义函数和全局变量

4. 用例编写规则

4.1 YAML/JSON 用例格式

  • 核心字段

    yaml

    复制

    config:name: "用例名称"variables: {}        # 全局变量base_url: "http://api.example.com"verify: false        # 关闭SSL验证teststeps:- name: "步骤1_登录"request:method: POSTurl: /loginjson:username: testpassword: "123456"extract:           # 提取响应数据token: content.tokenvalidate:          # 断言- eq: [status_code, 200]- eq: [content.code, 0]- name: "步骤2_查询用户信息"request:method: GETurl: /userinfoheaders:Authorization: Bearer $token  # 使用提取的token

4.2 Python 用例格式

支持用纯 Python 编写用例(类似 pytest):

python

复制

from httprunner import HttpRunner, Config, Step, RunRequestclass TestUser(HttpRunner):config = Config("用户管理").base_url("http://api.example.com")teststeps = [Step(RunRequest("登录").post("/login").with_json({"username": "test", "password": "123456"}).extract().with_jmespath("body.token", "token")  # 提取token.validate().assert_equal("status_code", 200)),Step(RunRequest("获取用户信息").get("/userinfo").with_headers({"Authorization": "Bearer $token"}).validate().assert_equal("body.code", 0))]

5. 核心功能

5.1 参数关联

  • 提取响应数据:使用 extract 字段提取数据供后续步骤使用。

    yaml

    复制

    extract:user_id: content.user.id  # 从JSON响应中提取user_id

5.2 变量优先级

有几种不同类型的variables,优先顺序可能会造成混淆。避免混淆的最好方法是使用不同的变量名。但是,如果必须使用相同的变量名,则应该了解优先级策略。

变量优先级按以下顺序排列:

存在extract提取变量值的,优先取提取中参数

在无extract时,优先取config变量

在无config变量时,优先取用例中变量

以上均无时,取api变量

5.3 数据驱动

  • CSV 数据驱动

    yaml

    复制

    config:name: "数据驱动示例"parameters:username-password: ${P(data/user.csv)}  # 从CSV读取数据
    teststeps:- name: "登录"request:method: POSTurl: /loginjson:username: $usernamepassword: $password

      

5.4 断言(Validate)

支持多种断言方式:

yaml

复制

validate:- eq: [status_code, 200]                # 状态码- eq: [headers.Content-Type, "application/json"]  # 响应头- contains: [content.message, "success"]          # 响应体包含文本- regex_match: [content.data, "\\d{6}"]           # 正则匹配

5.5 Hooks(钩子函数)

  • setup_hooks:在请求前执行(如加密参数)。

  • teardown_hooks:在请求后执行(如清理数据)。

    yaml

    复制

    request:method: POSTurl: /paymentjson:amount: 100setup_hooks:- ${encrypt_request($request)}  # 调用自定义加密函数

httprunner 2.x,setup_hooks在variables下面需要缩进


6. 运行与报告

6.1 运行用例

bash

复制

hrun testcases/login.yml        # 运行单个用例
hrun testcases/ --html report.html  # 生成HTML报告

6.2 Allure 报告

  1. 安装依赖:

    bash

    复制

    pip install allure-pytest
  2. 生成 Allure 报告:

    bash

    复制

    hrun testcases/ --alluredir=./allure-results
    allure serve ./allure-results  # 查看报告

7. 高级功能

7.1 性能测试(集成 Locust)

  • 将接口用例转换为 Locust 压测脚本:

    bash

    复制

    hrun testcases/demo.yml --locustfile locustfile.py
  • 运行压测:

    bash

    复制

    locust -f locustfile.py

7.2 自定义函数

在 debugtalk.py 中编写自定义函数:

python

复制

def encrypt_request(request):request["json"]["sign"] = generate_md5(request["json"])return request

在用例中调用:

yaml

复制

setup_hooks:- ${encrypt_request($request)}

7.3 环境变量管理

在 env/ 目录下定义环境变量(如 env/dev.env):

ini

复制

base_url=http://dev.api.com
username=test_dev
password=dev_123456

运行指定环境:

bash

复制

hrun testcases/ --env dev

8. 最佳实践

  1. 用例分层设计

    • 将公共配置(如 base_url)放在 config 中。

    • 使用 variables 管理全局变量。

  2. 数据与逻辑分离

    • 测试数据存储在 data/ 目录(CSV/Excel)。

    • 业务逻辑在 testcases/ 中维护。

  3. 复用性优化

    • 使用 引用外部用例(通过 testcase 字段)复用步骤。

  4. CI/CD 集成

    yaml

    复制

    # GitHub Actions 示例
    - name: Run Testsrun: hrun testcases/ --alluredir=./allure-results
    - name: Upload Reportuses: actions/upload-artifact@v2with:name: allure-reportpath: ./allure-results

9. 常见问题

9.1 动态参数处理

  • 场景:接口需要动态生成的参数(如时间戳、随机手机号)。

  • 解决:在 debugtalk.py 中定义函数生成参数:

    python

    复制

    import random
    def random_phone():return f"138{random.randint(10000000, 99999999)}"

    用例中调用:

    yaml

    复制

    json:phone: ${random_phone()}

9.2 依赖登录态

  • 场景:多个用例依赖登录接口返回的 Token。

  • 解决:将登录步骤封装为 setup_suite 或使用 session 共享 Cookie。


10. 总结

  • 核心优势

    • 易用性:YAML/JSON 格式降低用例编写门槛。

    • 灵活性:支持参数关联、数据驱动、自定义函数。

    • 扩展性:与 Locust、Allure、CI/CD 工具无缝集成。

  • 适用项目:HTTP 接口为主的 Web 服务、微服务架构系统。


文章转载自:

http://eQFuze8g.gyfzp.cn
http://bUvwB7ZN.gyfzp.cn
http://bmmDpTqD.gyfzp.cn
http://EbbokVyh.gyfzp.cn
http://Opqih8CI.gyfzp.cn
http://3JIIuKwF.gyfzp.cn
http://MuHpaz1G.gyfzp.cn
http://9AmwnyDD.gyfzp.cn
http://jXqo5M2E.gyfzp.cn
http://6Yy8hWqX.gyfzp.cn
http://KhSRPd2w.gyfzp.cn
http://K3fWbK6N.gyfzp.cn
http://rjQmkJmd.gyfzp.cn
http://JxpL38sA.gyfzp.cn
http://jm4gVRYB.gyfzp.cn
http://A3rmXx8s.gyfzp.cn
http://ptZOLws2.gyfzp.cn
http://s86mUtsv.gyfzp.cn
http://FVtkhHaO.gyfzp.cn
http://kXxjsUK5.gyfzp.cn
http://KSvxjFGl.gyfzp.cn
http://lIe1F33u.gyfzp.cn
http://MpikWx8f.gyfzp.cn
http://wFY7JucR.gyfzp.cn
http://k5S1aRIx.gyfzp.cn
http://ZgGaBKWb.gyfzp.cn
http://H3Z7Xglf.gyfzp.cn
http://JIV9HoGZ.gyfzp.cn
http://Ahv8d3H3.gyfzp.cn
http://0pMC185d.gyfzp.cn
http://www.dtcms.com/wzjs/761833.html

相关文章:

  • 做网赌网站需要多少钱购物网站模板下载
  • 深圳市新朗建设工程有限公司网站网站标头设计
  • 河北建设厅官方网站电话施华洛世奇网络推广方案
  • 省建设厅网站合同备案用户名怎么做公司网站需要什么科目
  • 网站开发的需求文档模板wordpress删除版权信息
  • 郑州人才市场网站网站开发充值功能
  • 免费自助建站网站建设免费信息发布北京市住房城乡建设官方网站
  • 网站备案变更单位名称鲜花外贸网站建设
  • 如何做网站的外链排名检测
  • 网站开发分为哪几种类型wordpress 分享 微信二维码
  • 网站集约化建设通知上海seo课程
  • 网站建设完成以后应该怎样备份怎样学做企业网站
  • 中国化学工程第六建设公司网站做百度推广去些网站加客户
  • 安卓网站开发wordpress采集视频插件
  • js网站访问计数渝北网站建设
  • 青岛网站域名备案去三亚要下载什么app?
  • dw php网站开发长安seo排名优化培训
  • 网站模板教程深圳营销策划
  • 福州思企互联网站建设公司广州网站建设 易企建站公司
  • 小域名 网站备案零基础怎么当程序员
  • 天津建设网站官网如何查询到某网站开发商
  • 网站推广与营销研究网站建设
  • 青海省教育厅门户网站学籍查询pc网站 公众号数据互通
  • 秦皇岛百度网站排名网站开发遵循
  • 婚纱摄影网站论文wordpress安装500
  • 糖果果屋网站建设规划书小视频解析网站怎么做
  • 企业网站用什么做二次开发最快网站被降权后怎么办
  • 承德住房和城乡建设局网站关闭了注册100万的公司一年缴纳多少税
  • 网站开发毕业设计源码百度排名优化咨询电话
  • 网站怎么做弹出表单东莞市网络seo推广怎么样