前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >httprunner 4.x学习 - 6.debugtalk辅助函数的使用

httprunner 4.x学习 - 6.debugtalk辅助函数的使用

作者头像
上海-悠悠
发布2023-08-22 11:14:34
4460
发布2023-08-22 11:14:34
举报
文章被收录于专栏:从零开始学自动化测试

前言

httprunner 4.x 可以支持go语言和python语言写辅助函数,本篇主要介绍python语言写辅助函数。

debugtalk辅助函数

在项目根目录新建 debugtalk.py 文件写辅助函数可以实现自动化生成动态参数。

如下生成时间戳 和 随机字符串示例

代码语言:javascript
复制
# debugtalk.py

import time
import uuid

def current_time():
    """获取时间戳"""
    return time.strftime("%Y-%m-%d %H:%M:%S")

def rand_str():
    """生成随机字符串"""
    return str(uuid.uuid4())[:6]

在yaml 用例中引用函数

代码语言:javascript
复制
config:
  name: 引用变量

teststeps:
-
  name: post
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${rand_str()}
      password: "123456"
  validate:
    - eq: [status_code, 200]

变量中也可以引用函数

代码语言:javascript
复制
config:
  name: 引用变量
  variables:
    user: ${rand_str()}

teststeps:
-
  name: post
  request:
    method: POST
    url: http://httpbin.org/post
    json:
      username: ${user}
      password: "123456"
  validate:
    - eq: [status_code, 200]

使用hrp 命令运行用例

代码语言:javascript
复制
>hrp run test_d.yml --gen-html-report

它会自动生成一个.debugtalk_gen.py 文件

代码语言:javascript
复制
# NOTE: Generated By hrp v4.3.3, DO NOT EDIT!

import sys
import os

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from debugtalk import *

if __name__ == "__main__":
    import funppy
    funppy.register("current_time", current_time)
    funppy.register("rand_str", rand_str)
    funppy.serve()

此文件是自动生成的,不用管。

除了会生成.debugtalk_gen.py 文件, 从运行日志可以看到还会在C:\Users\你自己电脑用户名 目录生成一个.hrp文件

代码语言:javascript
复制
 expectValueType=int64 result=true
9:49AM INF run step end exportVars=null step=post success=true type=request
9:49AM INF run testcase end testcase="引用变量"
9:49AM INF quit hashicorp plugin process
2023-05-09T09:49:26.959+0800 [WARN]  grpc-py: plugin failed to exit gracefully
2023-05-09T09:49:26.972+0800 [ERROR] grpc-py: plugin process exited: path=C:\Users\dell\.hrp\venv\Scripts\python.exe pid=
17232 error="exit status 1"

查看运行报告

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • debugtalk辅助函数
  • 在yaml 用例中引用函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档