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

news2024/9/24 9:24:02

目录

批量造数据

结合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】直接拿走就好了

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1019690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Redis】Redis 的学习教程(十)之使用 Redis 实现消息队列

消息队列需要满足的要求: 顺序一致:要保证消息发送的顺序和消费的顺序是一致的,不一致的话可能会导致业务上的错误消息确认机制:对于一个已经被消费的消息(已经收到ACK)不能再次被消费消息持久化:要具有持久化的能力&…

ccfcsp9.17

ccf csp第二题前缀和优化 n个ti变化 其中格式是 1 ti或者2 ti 分别表示拉长ti和逆时针旋转ti m个查询 其中格式是 ti到tj的变化(be en) x y初始坐标 输出格式 每个查询x y之间空格&#xff0c;查询\n 时间复杂度On #include<stdio.h> #include<stdlib.h> #includ…

人民日报发文祝贺,这位作者是藏不住了!

近日&#xff0c;人民日报特地发文祝贺一位90后短视频博主任大学副教授&#xff01; 这是哪位短视频博主这么有排面&#xff0c;竟然被人民日报专门发文祝贺呢&#xff1f; 她就是短视频科普“弦论”走红的周思益&#xff01; 同时也是《弦论小女孩的相对论课》一书的作者~~…

如何防止公司代码泄露(如何防止员工拷贝代码)

随着互联网的发展&#xff0c;越来越多的企业开始注重知识产权的保护&#xff0c;其中源代码是企业的重要资产之一。然而&#xff0c;一些员工可能会通过各种手段获取企业的源代码&#xff0c;这对企业的竞争力和商业机密构成了威胁。那么&#xff0c;企业应该如何防止员工拷贝…

文件夹高效改名,批量设置文件夹仅显示编号无名称的方法“

在数字化世界中&#xff0c;文件夹的命名和编号管理对于提高工作效率和保持文件组织的条理性起着至关重要的作用。你是否曾经在杂乱无章的文件系统中迷失&#xff0c;或者在寻找重要文件时感到困惑&#xff1f;如果你回答是肯定的&#xff0c;那么是时候采取一种更有效的文件夹…

亚马逊美国站小家电UL60335-1测试报告办理

有很多做亚马逊平台的客户反映产品因为没有UL认证&#xff0c;被下架了&#xff0c;怎么办&#xff1f; 因为大家都知道UL认证并没有那么好拿&#xff0c;随便一个产品做下来费用10W&#xff0c;一年需要对工厂进行4次审核&#xff0c;而且非常严格&#xff0c;普通工厂根本没…

Redis学习 - Tp6配置并使用redis图文详解 小皮面板(三)

这篇文章主要介绍了Thinkphp6 配置并使用redis的方法,结合实例形式详细分析了Redis的安装、配置以及thinkphp6操作Redis的基本技巧,需要的朋友可以参考下 一、安装redis ThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite。ThinkPHP默认使用自带的采用think\Ca…

在MySQL中使用VARCHAR字段进行日期筛选

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

VM ware中Linux连网

在公司时,想搭建一下docker,结果发现连不上网,那就自己动手操作一下 一、联网配置 1.1 ping 发现ping不通&#xff0c;说明虚拟机此时无法与外界网络互连&#xff0c;需要修改设置联网 1.2 ifconfig查看网络配置 注意第一行显示的是ens33还是ens32,后面配置会用到 1.3 获取ro…

详解API接口如何安全的传输数据

概述 API接口的安全传输是确保数据在API请求和响应之间的传输过程中不被截获、篡改或泄露的重要步骤。以下是一些用于增强API接口安全传输的常见技术和最佳实践&#xff1a; 使用HTTPS&#xff1a;使用HTTPS协议而不是HTTP&#xff0c;以确保数据在传输过程中的安全性。HTTPS使…

入户式防汛报警器是什么?

入户式防汛报警器是一款能够和雨量气象监测设备搭配的仪器&#xff0c;是集实时监测、信息显示、多时段声光报警功能的监测报警设备&#xff0c;支持不同级别的声光报警。 当监测要素超过设定的危险警戒值时设备发出报警声&#xff0c;提醒居民做好防汛&#xff08;转移&#…

无所不知的Mac效率神器 Alfred 4,一顶神器的小帽子!

肯定很多人在工作、学习或者写东西的时候&#xff0c;总想着怎样可以提高效率&#xff0c;节约时间。现在每天用得最多的电脑&#xff0c;怎样才能够让工作效率更高呢&#xff1f;带着这样的一个目的&#xff0c;使用了很多的小工具&#xff0c;有些可以简化工作&#xff0c;有…

JDK、JRE和JVM

JDK&#xff08; java 开发工具 &#xff09;&#xff1a; Java Develpment Kit&#xff0c;主要包含了工具程序与API、JRE JRE&#xff08;java运行时环境 &#xff09;&#xff1a; Java Runtime Environment&#xff0c;主要包含了JavaSE核心类库和Java虚拟机&#xff08;JV…

深入浅出学Verilog--数字电路基础内容

什么是数字系统&#xff1f; 数字系统是一种表示数值的方式。它是一组使我们能够计数、测量和计算数值量的规则、符号和过程。最常见的数字系统是使用数字 0-9 的十进制系统和仅使用 0 和 1 的二进制系统。其他数字系统包括八进制、十六进制和罗马数字。每个数字系统都有其独特…

URL 路径中包含百分号需要在 Swift 中的特殊处理

概览 在 Swift 中访问或处理 URL 路径常常遇见路径中包含百分号(%)的情况,此时我们有必要做特殊处理,否则 URL 的请求和解析可能会发生错误。 如果 URL 路径中包含用百分号前缀表示的特殊字符,在之后的路径解析中可能会出现意想不到的问题。 在本篇博文中,您将学到以下…

数字展厅如何设计与策划,一文了解搭建数字展厅要哪些步骤

引言&#xff1a; 数字展厅&#xff0c;作为一种现代化的宣传工具&#xff0c;已经在商业界崭露头角。我们将了解什么是数字展厅&#xff0c;然后探讨数字展厅设计的关键要素&#xff0c;接着讲述数字展厅策划的核心原则&#xff0c;最后详细介绍数字展厅的搭建过程。 一&…

C# OpenVino Yolov8 Cls 分类

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…

GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术教程

详情点击公众号链接&#xff1a;GMS地下水数值模拟及溶质&#xff08;包含反应性溶质&#xff09;运移模拟技术教程 前言 GMS三维地质结构建模 GMS地下水流数值模拟 GMS溶质运移数值模拟与反应性溶质运移模 第一地下水数值模拟理论模块 1.1 地下水渗流运动方程 1.2 地下水数…

docker启动前端

docker启动前端 作为一个前端&#xff0c;代码写完&#xff0c;最后部署到服务器&#xff0c;这是一个必须要了解的过程&#xff0c;今天&#xff0c;我就在docker 中安装nginx 并部署做一个简单的笔记。 首先我在某云中有个云服务器&#xff0c;并登陆 前言 提示&#xff1…

【2023研电赛】西北赛区二等奖:单链全导联便携式心脏健康监测系统

本文为2023年第十八届中国研究生电子设计竞赛技术竞赛类西北赛区二等奖分享&#xff0c;参加极术社区的【有奖活动】分享2023研电赛作品扩大影响力&#xff0c;更有丰富电子礼品等你来领&#xff01;&#xff0c;分享2023研电赛作品扩大影响力&#xff0c;更有丰富电子礼品等你…