zoukankan      html  css  js  c++  java
  • python接口自动化测试框架实现之字符串插入变量(字符串参数化)

    问题:

    在做接口自动化测试的时候,请求报文是json串,但是根据项目规则必须转换成字符串,然后在开头拼接“data=”

    接口中很多入参值需要进行参数化。

    解决方案:

    1、Python并没有对在字符串中简单替换变量值提供直接的支持。 但是通过使用字符串的 format() 方法来解决这个问题。比如:

    >>> s = 'hello, this is a {param}!'
    >>> s.format(param='dog')
    'hello, this is a dog!'
    >>> 
    

    2、如果要被替换的变量能在变量域中找到, 那么你可以结合使用 format_map() 和 vars() 。就像下面这样:

    >>> param='cat'
    >>> s.format_map(vars())
    'hello, this is a cat!'
    >>> 
    

    3、使用%()包裹变量

    >>> name = 'Guido'
    >>> n = 37
    >>> '%(name) has %(n) messages.' % vars()
    'Guido has 37 messages.'
    >>>
    4、但是使用上述两种方式在实际参数化json请求报文的时候,仍然是失败的,可能是因为json串里面本身包含了{}
    尝试使用$var成功
    >>> import string
    >>> s = string.Template('$name has $n messages.')
    >>> s.substitute(vars())
    'Guido has 37 messages.'
    >>>
    
  • 相关阅读:
    AcWing 1081. 度的数量
    CF584D Dima and Lisa
    [ABC130F] Minimum Bounding Box
    AT4289 [ABC133E] Virus Tree 2
    Arc of Dream HDU
    Reading comprehension HDU
    【洛谷 1541】乌龟棋
    【洛谷 4880】抓住czx
    【洛谷 1525】关押罪犯
    【洛谷 1040】加分二叉树
  • 原文地址:https://www.cnblogs.com/ianduin/p/8556683.html
Copyright © 2011-2022 走看看