欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python - 自定义脚本,支持接口自动化

程序员文章站 2022-05-19 15:50:26
...

【数据准备】自定义长度生成字符串a*n

import os
import random
def createlongchar(length):
    a="a"
    b=a*length
    print(b)
    return b
    
# if __name__ == '__main__':
#     createlongchar(5)

【数据准备】按照序号截取字符串 从0下标开始 getstringbyindex(s,0,6) 即取前6位

def getstringbyindex(s,a,b):
    l=""
    l=s
    c=0
    c=a
    d=0
    d=b
    z=l[c:d]
    print(z)
    return z

【数据准备】字符串替换

def StringModify(s,a,b):
    print(s.replace(a, b))
    return s.replace(a, b)   
StringModify("this",'is','at')

【数据准备】若参数类型为list,可从数据表中查询符合要求的数据

  1. 从数据库查询符合要求的数据db
SELECT `id` FROM `table` WHERE `isDeleted` = '0' LIMIT 10;
  1. 构造list数据
# 构造list数据 result可填有列数据的db查询结果 key填列名 可得【"a","b",...】的list
def getlist(result,key):
    d = result
    b=[]
    print(len(d))
    for i in range(len(d)):
        b.append(d[i].get(key))
    print(b)
    return b
    
# if __name__ == '__main__':
#     get(db,'id') 

【数据准备】加减乘除四则运算

def arithmetic(a, b, operator):
    if operator == "a":
        return a + b
    elif operator == "s":
        return a - b
    elif operator == "m":
        return a * b
    elif operator == "d":
        return a / b

# 测试
print(arithmetic(1,2,'a'))
print(arithmetic(1,2,'s'))
print(arithmetic(1,2,'m'))
print(arithmetic(1,2,'d'))

【数据准备】若参数需要保证唯一性,可以利用时间戳构造随机新数据

  1. 获取当前时间毫秒级时间戳(int格式)
import time
import datetime

def getnowtimestampmsnum():
    t = time.time()
    # 获取当前时间毫秒级时间戳(int格式)
    i=int(round(t * 1000))
    return i
    
# if __name__ == '__main__':
#     print(getnowtimestampmsnum())
  1. 获取当前时间毫秒级时间戳(字符串格式)
import time
import datetime

def getnowtimestampms():
    t = time.time()
    # 获取当前时间毫秒级时间戳(字符串格式)
    s=str(round(t * 1000))
    return s

# if __name__ == '__main__':
#     print(getnowtimestampms())

【数据准备】生成32位小写uuid

import os
import random
import string
def get32uuid():
    w = "1234567890abcdefghijklmnopqrstuvwxyz"
    u=[]
    random.seed()
    for i in range(32):
        u.append(random.choice(w))
    uuid=''.join(u)
    return  uuid
print(get32uuid())   

【数据准备】生成32位小写uuid

例:d3fbe7e3-7763-43b9-adf8-dcdd0fea4ef3

import uuid
def get_32uuid():
    return str(uuid.uuid4())
    
print(get_32uuid())

【数据准备】获取list中的第n个元素

def getdatainlist(s,n):
    ss=[]
    ss=s
    n=int(n)
    num=n-1
    print(s[num])
    return s[num]

【数据准备】获取当前时间的日期信息 格式为年-月-日

import time
def ymd():
    print (time.strftime("%Y-%m-%d", time.localtime()))
    return (time.strftime("%Y-%m-%d", time.localtime()))
# 格式化成2021-03-01形式
ymd()

【数据准备】md5加密

import os
import random
import hashlib
def getmd5(s):
    str = s
    hl = hashlib.md5()
    hl.update(str.encode(encoding='utf-8'))
    str1 = hl.hexdigest()
    print('MD5加密前为 :' + str)
    print('MD5加密后为 :' + str1)
    return str1

【数据准备】 拼接所有输入的字符串

def addstr(s1,s2,*s3):
    l = [s1,s2,*s3]
    add_str = ''.join(l)
    print(l)
    print(add_str)
    return add_str

【校验】通过键找值(需要判断布尔类型时不可用)

import os
import random
def getvaluebykey(result,key):
    result1=result
    key1=key
    d = result[0]
    print(d)
    b = d.get(key)
    print(d.keys())
    print(b)
    return b

【校验】判断后者字符串是否包含前面的字符串

def isinstr(a,b):
    if a in b:
        return True
    else:
        return False
        
s = isinstr("s","this")
print(s)

【校验】校验接口返回是否为空

import os
import random
def getResultSize(result):
    size=len(result)
    return size

【校验】jsondata:取json返回中的某个键对应的值,如果内容值为none返回异常

def jsondata(result,key):
    if result is None:
        b=""
    else: 
        b = result.get(key)
        if b is None:
            b=""
    return b

【校验】获取get请求response headers

import requests

def get_header(url, key):
    r = requests.get(url)
    value_key = r.headers['content-type']
   
    return value_key

【校验】通过url拿到图片的高

# encoding=utf-8
import requests
from io import BytesIO
from PIL import Image

def getHeightByUrl(url):
    response = requests.get(url)
    tmpIm = BytesIO(response.content)
    im = Image.open(tmpIm)
    # 长宽储存在im当中的size列表当中
    return im.size[1]

【校验】通过url拿到图片的宽

# encoding=utf-8
import requests
from io import BytesIO
from PIL import Image

def getwidthByUrl(url):
    response = requests.get(url)
    tmpIm = BytesIO(response.content)
    im = Image.open(tmpIm)
    # 长宽储存在im当中的size列表当中
    return im.size[0]

【校验】通过url拿到图片的物理大小-byte

#! -*- coding: utf-8 -*-
import requests
import io
def getSizeByUrl(url):
    image = requests.get(url).content
    image_b = io.BytesIO(image).read()
    size = len(image_b)
    return format(size)

【校验】通过url拿到图片的格式

# encoding=utf-8
import requests
from io import BytesIO
from PIL import Image
def getFormatByUrl(url):
    response = requests.get(url)
    tmpIm = BytesIO(response.content)
    im = Image.open(tmpIm)
    print(im)
    print(im.format)
    return im.format.lower()