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私聊。
  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/dream66/p/13112648.html
Copyright © 2011-2022 走看看