pytest框架之热加载

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

什么是热加载

热加载:就是在代码运行的过程中动态的调用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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值