Python脚本批量造数据、跑定时任务协助测试

2023-11-04

目录

批量造数据

结合python+pytest+fixture 实现定时任务接口调用

目录结构

定时任务


批量造数据

  • 连接Mysql的信息

 1 import pymysql
 2 # 数据库连接信息
 3 # 多个库要有多个conn
 4 conn = pymysql.connect(
 5     host="主机",
 6     user="用户名",
 7     password="密码",
 8     database="库名"
 9 )
10 conn1 = pymysql.connect(
11     host="主机",
12     user="用户名",
13     password="密码",
14     database="库名"
15 )
16 
17 # 创建游标对象
18 cursor = conn.cursor()
19 cursor1 = conn1.cursor()
20 
21 # 执行对应的SQL
22 cursor.execute
23 # 获取执行结果
24 Result=cursor.fetchall()

  场景一:基于已有的csv文件,分批次读取csv文件中的字段值作为变量填充到执行的SQL语句

  • 分批读取csv文件中的值

 1 csv_file_path = 'csv文件目录'
 2 with open(csv_file_path, 'r',encoding='utf-8') as file:
 3     reader = csv.reader(file)
 4     next(reader)  # Skip the header row
 5 
 6     batch_size = 100  # 每批处理的数量
 7     total_items = 3100  # 总共需要处理的数量
 8 
 9     for i in range(0, total_items, batch_size):
10         # 在每次循环中处理 batch_size 个项目
11         # 可以在循环体内部使用 i 作为起始索引
12       
13         for j in range(i, min(i + batch_size, total_items)):
14             row = next(reader)
15             # 打印这一行的数据
16             print(row)

   场景二:随机生成特殊字段的值,作为变量填充到Insert语句中

  • 随机生成统代

 1 import random
 2 import string
 3 def generate_credit_code():
 4     # 生成第1位登记管理部门代码
 5     管理部门代码 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D']
 6     register_department = random.choice(管理部门代码)
 7     # print('管理部门代码为',register_department)
 8 
 9     # 生成2-9位组织机构代码
10     organizations_code = []
11     for _ in range(8):
12         org_code = ''
13         for _ in range(8):
14             org_code += random.choice(string.ascii_uppercase + string.digits)
15         organizations_code.append(org_code)
16     organizations_code=random.choice(organizations_code)
17     # print('组织机构代码为',organizations_code)
18 
19 
20     # 生成10-17位统一社会信用代码
21     unification_credit_code = ''
22     for _ in range(8):
23         unification_credit_code += random.choice(string.ascii_uppercase + string.digits)
24     # print('统一社会信用代码为',unification_credit_code)
25 
26         # 组合统一社会信用代码
27     credit_code = f"{register_department}{''.join(organizations_code)}{unification_credit_code}"
28     return credit_code

  •  随机生成注册号

1 mport random
2 
3 #这个注册号是由15个随机数字组成的,使用random.choice方法从0-9中随机选择数字。这个方法会被调用15次,每次都会生成一个随机数字,然后通过字符串的join方法将这15个数字拼接在一起。
4 def generate_reg_code():
5     # 15位注册号,以0开头
6     reg_code  =  ''.join(random.choice('0123456789') for i in range(15))
7     return reg_code

结合python+pytest+fixture 实现定时任务接口调用

目录结构

(有些乱。。。

-- config.ini     存放的是系统固定的url之类的

-- conftest.py  一般用于放登录接口,用户返回token,利用fixture被其他接口使用

 1 import pytest
 2 import requests
 3 import pymysql
 4 from config import readconfig
 5 readcon = readconfig.Read()
 6 
 7 
 8 @pytest.fixture(scope="session")
 9 # 这个方法是pytest封装公共方法的一个文件,文件名必须是(conftest.py)
10 # 作用: 其他地方在使用这个方法时就不用from XX import cc 然后也不用实例化了
11 
12 
13 def test_login():
14     msg = {
15         "username": '用户名',
16         "password": '加密后的密码'
17     }
18
19     url =readcon.get_URL("baseurl")
20     cc = requests.post(url+"api/uxxxxxxr/login",  params=msg)
21     getjson = cc.json()
22 
23     # 获取token
24     tok = getjson['data']['token']
25     userid = getjson['data']['userId']
26     return tok, userid

定时任务

import pytest
import requests
from config import readconfig

read = readconfig.Read()
class TestCase1:
     global url, tim  # 全局变量,便于其他地方调用
     url = read.get_URL("baseurl")  
     tim = read.get_URL("timeout")
     
     def test_case1(self, test_login):
         head = {'Content-Type': 'application/json', 'Authorization': test_login[0]}  # test_login[0]为token
         NewtestCreditCodeList = []
         SelectNewtestGs = "select 字段1,字段2,字段3 from 数据表 order by id desc  limit 100"
         cursor.execute(SelectNewtestGs)
         SelectNewtestResult = cursor.fetchall()
       
         for tuple in SelectNewtestResult:
             NewtestCreditCodeList.append(tuple[2]) 
 
         NewtestGsCreditCodeListResult = ', '.join('"' + i + '"' for i in NewtestCreditCodeList)
         print('结果为', NewtestGsCreditCodeListResult)
         r = requests.get(url + 'api/exxxxxh/txxx/xxxxx?入参='+NewtestGsEidListResult,  headers=head)
         print(r.json())

以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python脚本批量造数据、跑定时任务协助测试 的相关文章

随机推荐

  • python第六七天作业

    作业1 求第n项的斐波那契数列的值 n gt 1 def fbnq n if n lt 1 return 1 if 1 n or 2 n return 1 return fbnq n 1 fbnq n 2 def main n int in
  • MemCache详细解读

    MemCache是什么 MemCache是一个自由 源码开放 高性能 分布式的分布式内存对象缓存系统 用于动态Web应用以减轻数据库的负载 它通过在内存中缓存数据和对象来减少读取数据库的次数 从而提高了网站访问的速度 MemCaChe是一个
  • printf 和 println 是 Java 中用于输出的两种不同的方法

    以下为ChatGPT输出 printf 和 println 是 Java 中用于输出的两种不同的方法 它们之间有以下几点差异 格式控制 printf 方法允许你使用格式字符串来控制输出的格式 你可以指定变量的类型 字段宽度 精度等 而 pr
  • openwrt查看系统的芯片方案

    拿到一款路由器 想要知道主芯片的方案 可以通过如下方法 方法一 查看cpuinfo 比如 root IceCreamBox cat proc cpuinfo system type Ralink MT7620A ver 2 eco 3 ma
  • mybatis查询返回的对象不为null,但是属性值为null

  • 深度学习调参技巧

    深度学习调参技巧 一 寻找合适的学习率 learning rate 二 learning rate与batch size的关系 三 权重初始化 四 dropout 五 多模型融合 六 差分学习率与迁移学习 七 多尺度训练 八 Cross V
  • BRDF公式

    转自 https www cnblogs com wbaoqing p 9810386 html 根据BRDF公式 高光项部分 只能物体的表面的粗糙度有关 Roughness有关 大部分公式都是 根据Cook Torrance 的微表面高光
  • 用Python搭建2层神经网络实现mnist手写数字分类

    这是一个用python搭建2层NN 一个隐藏层 识别mnist手写数据集的示例 mnist py文件提供了mnist数据集 6万张训练图 1万张测试图 的在线下载 每张图片是 28 28 28 28 28 28的尺寸 拉长为 1
  • windows安装MSYS2(mingw && gcc)

    一 简介 本文主要介绍如何在windows环境下安装msys环境 二 软件安装步骤 2 1 官网下载 msys官网链接 https www msys2 org 下载完成 2 2 软件安装 根据网页提示选择需要安装的目录 并等待安装完成 安装
  • 区间预测

    区间预测 MATLAB实现QRLSTM长短期记忆神经网络分位数回归多输入单输出区间预测 目录 区间预测 MATLAB实现QRLSTM长短期记忆神经网络分位数回归多输入单输出区间预测 效果一览 基本介绍 模型描述 程序设计 参考资料 效果一览
  • 【小程序】如何实现一个可折叠的列表

    作者刚接触小程序开发不久 打算用 CSDN 把学习过程中遇到的一些问题记录下来 都是一些浅显易懂的内容 希望对你也有所帮助 如文章标题所示 作者要实现一个可折叠的列表 先来看一下页面效果 这种展示方式的实现非常简单 话不多话 直接上代码 首
  • 用EasySysprep封装Win7系统

    前面我介绍了使用Dism 封装Windows 7系统 不过最后还是没达到我想要的效果 不过经过一番查阅之后 我发现我想要的效果好像没办法简单的使用单一工具达到 我希望做成的效果是类似于Win10 一个ISO镜像内置各种驱动及最新的更新 安装
  • Image size of 512922x322 pixels is too large. It must be less than 2^16 in each direction

    plt figure figsize 10 8 sns regplot x data num y data y marker o ci 95 scatter kws color b alpha 0 2 s 3 fit reg False 线
  • iOS开发环境xcode搭建

    1 到 https developer apple com download 或者在APP store下载 2 下载完成后会在launchpad显示 点击安装
  • python计算机视觉- 相机模型与参数标定

    文章目录 相机投影模型 针孔相机模型 像主点偏移 内参矩阵 畸变现象 畸变矫正 外参矩阵 两类参数 相机标定 线性回归 最小二乘 非线性优化 标定过程 实验过程 MATLAB进行标定 相机投影模型 针孔相机模型 针孔照相机模型是计算机视觉中
  • 我以前的博客在ITEYE上

    我以前的博客 https www iteye com blog user jiasudu 这个是我以前的博客 密码忘记了 就不搬家了 大家可以去看看 主要是十多来年记录ofbiz的资源 可以说是大全
  • 第九站:速学JavaScript中的函数

    js函数 欢迎来到 JavaWeb的奇妙冒险 教学系列 在本站中 我们将深入探索Web开发的精彩世界 在学习的过程中 我们既要保持轻松愉快 又要确保高质量的教学内容 准备好进入第九站的学习之旅了吗 让我们开始吧 文章目录 js函数 介绍 定
  • IDEA 登陆Gitee账户登录不上解决方案

    Mark一个IDEA2021 1连接gitee的bug 点击VCS想要share on Gitee时出现idea loading information for gitee窗口 然后始终连接不上Gitee 可能的解决方案 检查自己的Gite
  • [报错解决]name 'keras_applications' is not defined

    加载模型报错 解决方案 pip install keras applications 1 0 4 no deps pip install keras preprocessing 1 0 2 no deps pip install h5py
  • Python脚本批量造数据、跑定时任务协助测试

    目录 批量造数据 结合python pytest fixture 实现定时任务接口调用 目录结构 定时任务 批量造数据 连接Mysql的信息 1 import pymysql 2 数据库连接信息 3 多个库要有多个conn 4 conn p