什么是热加载
热加载:就是在代码运行的过程中动态的调用python中的方法达到获得动态参数的目的。
参数的替换
当我们编写接口自动化时,经常会遇到,某些接口的限制,一些参数不能写死,这时我们就需要将参数动态化
如:接口为创建标签,标签名字不能重复,我们就需要将yaml文件中的参数实现动态化
1、在工程根目录下,创建一个py文件,获取一个随机数
其中random.randint为获取两个范围数值之间的任意随机数字
time.time获取当前的时间戳
reads_token_yaml方法是调用读取鉴权码的方法,由于之后要根据yaml文件的函数名称来调用方法,现在一并写了
#!/usr/bin/python
# -*- coding: UTF-8 -*
import random
import time
from tools.yaml_tool import read_token_yaml
class DebugTalk:
#获得随机数
def get_randon_number(self,min,max):
return random.randint(int(min),int(max))
def get_time(self,key):
return int(time.time())
#读取鉴权码yaml文件--token.yaml
def reads_token_yaml(self,key):
return read_token_yaml(key)
2、获得随机数的方法编写完毕,我们需要将yaml的固定参数,替换成获得随机数的方法
原yaml文件数据:这里读取的鉴权码,是直接通过关键字来读取的,标签创建是写死的
-
name: 创建标签接口
request:
method: post
url: /cgi-bin/tags/create?access_token=${
access_token}
json: {
"tag":{
"name":"广东112313"}}
修改过得yaml文件数据,这里面的获取鉴权码,是要通过方法名来调用,动态参数也通过方法名来调用
-
name: 创建标签接口
request:
method: post
url: /cgi-bin/tags/create?access_token=${
reads_token_yaml(access_token)}
json: {
"tag":{
"name":"广东${get_randon_number(10,1000000)}"}
3、在同一请求中,对方法进行封装
#!/usr/bin/python
# -*- coding: UTF-8 -*
import json
import re
import jsonpath
import requests
from debug_talk import DebugTalk
from tools.yaml_tool import read_base_url_yaml, write_token_yaml, read_token_yaml
class Uni

本文介绍了如何在接口自动化测试中使用Python动态参数,通过创建DebugTalk类实现动态获取随机数和时间戳,并在YAML文件中调用这些方法替换固定参数。同时,展示了如何在请求过程中解析和替换YAML文件中的动态参数,以实现热加载,提高接口测试的灵活性。

908

被折叠的 条评论
为什么被折叠?



