python实用工具(长期更新)

Index:
1、比较两列表元素(不考虑顺序,不考虑重复)
2、调get型数据库接口,循环造数据(示例)
3、连接操作mysql数据库
4、多进程执行pytest UI脚本(示例)-错误待修改
5、简单的接口自动化测试举例
1、比较两列表元素(不考虑顺序,不考虑重复)

def compareList1(list1, list2):
    """比较两列表元素,不考虑顺序,不考虑重复"""
    if sorted(set(list1)) == sorted(set(list2)):
        print('不考虑顺序,不考虑重复时,两个列表等价')
    else:
        a, b = [], []
        exist = 0
        for i in list1:
            for j in list2:
                if i == j:
                    exist = 1
                    break
                else:
                    exist = 0
            if exist == 0:
                a.append(i)
        for j in list2:
            for i in list1:
                if j == i:
                    exist = 1
                    break
                else:
                    exist = 0
            if exist == 0:
                b.append(j)
        print(f'两个列表不等价,列表1独特元素是:{a}')
        print(f'两个列表不等价,列表2独特元素是:{b}')

def compareList2(list1, list2):
    """比较两列表元素,找出相同元素,不同元素"""
    print(f"两列表相同元素是{set(list1)&set(list2)}")
    print(f"两列表不同元素是{set(list1)^set(list2)}")

效果:
在这里插入图片描述

2、调get型数据库接口,循环造数据(示例)

import requests,json,random
def send_get(url,params,headers={}):
    """get型接口调用"""
    response=requests.get(url=url,params=params,headers=headers)
    res_dict=json.loads(response.text)
    return res_dict

tasktype=['新建','活动中','已完成']
state=['取消','搁置','已完成']
url = 'https://xxx.yyy.zzz:18030/jdbcplat/update'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}

for i in range(10001):
    sql=f'''
    insert into base_tasklist (id,tasktype,state) 
    values(10678+{i},{random.choices(tasktype)},{random.choice(state)})
    '''
    params={'server':'dlpt','sql':sql}
    print(send_get(url,params,headers))

3、连接操作mysql数据库

# coding=utf-8
# encoding: utf-8
"""
Author:刘源
Createtime:2021/08/08 14:25:42
Updatetime:2021/08/08 14:25:42
Description:
"""
import time, sys
# 上下文管理器,自动关闭文件,自动处理文件冲突
with open('tt21.txt', 'a') as f:
    f.write(f'{__file__}运行记录:')
    f.write(time.ctime())
    f.write('---' + str(time.time()) + '\n')
    print(sys.path)

# 连接mysql数据库
import MySQLdb
db = MySQLdb.connect(host="192.168.1.103", user="root",passwd= "Liuyuan3.14", db="tt1", charset='utf8',port=3306)
# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print("Database version : %s " % data)

sql1='''select * from users'''
sql2="""INSERT INTO tt1.users (id, name, chinese, math, English, physics) 
VALUES (8, '冯锐', 77, 73, 93, 59);"""
# 使用execute方法执行SQL语句
cursor.execute(sql2)
db.commit() #增删改,需要提交;查询不用
cursor.execute(sql1)
# 使用 fetchone() 方法获取一条数据
data1 = cursor.fetchall()
for i in data1:
    print('select * from users',i)

# 关闭数据库连接
db.close()

效果:
在这里插入图片描述

注意,mysql连接失败原因可能有如下,可逐一排除:
①Linux防火墙没关→systemctl stop firewalld,临时关闭它(不建议通过配置文件永久关闭)
②SeLinux模块的阻碍→setenforce 0,临时设置为带警告的强制执行模式(不建议通过配置文件永久关闭)
③服务器ip地址错误,尤其不是固定ip,又没域名映射、自动转换时→确定正确ip
④mysql没开启指定用户在指定ip的远程连接权限→自行设置哦
⑤Linux没有监听所有ip的连接请求→netstat -anop | grep -in mysql,自行验证下
⑥其他原因,比如系统升级,版本升级→试试重启,重启解决一半问题
4、多进程执行pytest UI脚本(示例)
-这里有点错误,待博主面试新公司结束后来修改
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述

5、简单的接口自动化测试举例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天道哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值