zoukankan      html  css  js  c++  java
  • httprunner踩坑记03-->debugtalk.py中的方法传参

    前言

         别把生活想得太重,别把自己看得太轻。
    

    一、debugtalk.py介绍

      辅助函数,可在debugtalk.py文件中自定义函数,完成一些yml测试脚本完成不了的功能。
    

    二、debugtalk.py 应用举例

    # debugtalk.py 中存在方法
    
    # 产生1个自定义范围的随机数
    def  get_randomint(n,m):
          return random.randint(n,m)
    
    # 默认产生3个自定义范围的随机数(参数化时使用)
    def get_randomints(n,m,count=3):
        random_list = []
        for i in range(0,count):
            random_list.append( random.randint(n,m) )
        return random_list
    

    在测试用例文件中调用上述函数的格式如下:

    - config:
        name: "验证百度搜索是否正确"
        base_url: "https://www.baidu.com"
        variables:
          - search_word: ${get_randomint(1,20)}
    
    - test:
        name: "百度搜索请求"
        request:
          url: "/s"
          method: GET
          headers:
            User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
            Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
            Accept-Encoding: "gzip, deflate, br"
            Accept-Language: "zh-CN,zh;q=0.9"
          params:
            wd: $search_word
        validate:
          - eq: ["status_code",200]
    

    如上测试用例yml文件内容,在 config 的 variables 下 调用了debugtalk.py文件中的get_randomint函数。并把函数返回值传递给了定义的 search_word 变量。

    三、debugtalk.py 传参时的小问题

    # debugtalk.py文件内容
    
    def  pri(content):
          print(content)
    

    通过上述代码可以发现 debugtalk.py 文件中有一个输出到控制台函数,需要传入一个 content 参数,平时传参用起来没有问题。但如下面事例代码时:

    - config:
        name: 验证能否打开主网页
        base_url: http://www.hnxmxit.com
    # 测试步骤
    - test:
        name: open hnxmxit mainpage api
        setup_hooks:
           - ${pri(step_01:打开新梦想主页)}
        request:
          url: /
          method: GET
        validate:
          - eq: ["status_code",200]
    

    如上述代码, setup_hooks中调用了pri方法,传递的参数中包含 英文 : 号,会导致调用该pri方法失效。类似的字符串有 [] 、: 。解决方法是去掉 : 等

    四、小结

      欢迎广大读者们提出对该博客有遗虑的地方,或者有办法解决上述问题的朋友都可以加V、QQ私聊。
  • 相关阅读:
    pthread_join()
    linux nc
    gcc编译线程程序需带-lpthread选项(否则出错:undefined reference to `pthread_create')
    Makefile中的$(addprefix),添加前缀,指定目标生成目录
    makefile里的Phony
    鱼书学习笔记:激活函数层的实现
    鱼书学习笔记:输出层
    鱼书学习笔记:参数优化
    鱼书学习笔记:利用numpy实现三层神经网络
    鱼书学习笔记:损失函数
  • 原文地址:https://www.cnblogs.com/dream66/p/13112648.html
Copyright © 2011-2022 走看看