問題:
在做接口自動化測試的時候,請求報文是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.'
>>>
