方便好用!这个方法快速构造测试数据!

2145 篇文章 2 订阅
2011 篇文章 14 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3.4k次,点赞86次,收藏15次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

文章介绍

本文主要介绍在pycharm集成开发坏境中,使用python语言,利用psycopg2第三方库,向postgre数据库中插入数据,为测试环境构造模拟数据的过程。

包括psycopg2介绍、random函数介绍,以及根据案例一个具体的数据库表里插入20条记录进行代码拆分。

使用场景:为web 列表页造测试数据,以测试下拉框、页面跳转、查询等功能

为了测试以上内容,需要在web页面构造测试数据,接下来介绍psycopg2插件及random函数。

psycopg2介绍

什么是psycopg2?

psycopg2是一个用于访问PostgreSQL数据库的第三方库。

它提供了一个简单易用的API,使得在Python程序中进行数据库操作变得容易,包括查询、插入、更新和删除等操作。psycopg2基于C语言实现,具有高效性,能够提供高效的数据库操作。

特别注意psycopg2是特别针对PostgreSQL的数据库,如果你的数据库是其他类型还需要替换其他插件如sqlalchemy,SQLAlchemy适用于多种数据库库,包括MySQL、PostgreSQL、SQLite、Oracle等。

psycopg2使用过程:

总共分为6个过程

  • 安装psycopg2库。可以通过pip安装,使用命令:pip install psycopg2。

  • 建立与数据库的连接。

import psycopg2  
  
# 创建连接对象  
conn = psycopg2.connect(  
    host="localhost",  #指定数据库服务器的地址
    database="mydatabase",  #指定要连接的数据库的名称
    user="myuser",  #指定用于连接到数据库的用户名,这里是myuser
    password="mypassword"  #指定用于连接到数据库的密码,这里是mypassword
)
  • 创建游标对象cur = conn.cursor()

  • 执行SQL语句,插入数据。可以使用execute()方法执行SQL语句。

    cur.execute("INSERT INTO mytable ("INSERT INTO device_water (id, device_water_id, data_group,) VALUES ({id}, {device_water_id}, '{data_group}') #向device_water表里id, device_water_id, data_group字段插入数据

  • 提交事务,conn.commit()

  • 关闭游标和连接cur.close()  conn.close()

random函数

接下来就案例中用到random函数常用的语法进行介绍:

  • random.randint(a, b):返回一个[a, b]范围内的随机整数,包括a和b。

    Eg: del_flag = random.randint(0, 1)

  • random.choice(a,b)从给定的集合中返回随机元素。

    Eg:workspace_code=''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', k=5))

    workspace_code变量将包含一个随机的5位字符串,由小写字母、大写字母和数字组成。

真实案例

比如我们要添加的数据库表device_water,数据库查看表属性的方法为:选择表->点击生成SQL->选择DDL,根据这些属性编写构造测试数据脚本。

psycopg2模拟数据过程

安装插件:pip install psycopg2

结果如下:

图片

然后,使用以下Python脚本使用psycopg2生成测试数据并插入到public.device_power表中:

import random
from datetime import datetime
import psycopg2

# 创建数据库连接
conn = psycopg2.connect(
    host='47.94.197.155',
    port=5432,
    dbname='ems-gqt-db-wx',
    user='ems',
    password='ems_2022'
)

# 获取游标对象
cur = conn.cursor()
# 定义插入数据的函数
def insert_data():
    while True:
        id = random.randint(0, 99999999)
        device_water_id = random.randint(0, 99999999)
    # 检查id是否存在
        check_query = f"SELECT * FROM device_water WHERE id = {id} OR device_water_id = {device_water_id}"
        cur.execute(check_query)  # 执行SQL语句
        result = cur.fetchone()  # 返回一行数据
        if result is None:
         break  # 如果结果为空,跳出循环
    data_group = random.choice(['farm1', 'farm2'])
    water_code = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', k=8))
    water_name = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', k=5))
    water_type_code = random.choice(['production', 'life'])
    process_code = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', k=5))
    flowmeter_code = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', k=5))
    is_total_consumption_count = random.choice(['Y', 'N'])
    del_flag = random.randint(0, 1)
    tenant_id = random.randint(0, 1)
    create_by = random.randint(0, 9)
    create_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    update_by = random.randint(0, 9)
    update_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    workspace_code = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', k=5))
    unit = random.choice(['立方米'])
    insert_query = f"INSERT INTO device_water (id, device_water_id, data_group, water_code, water_name, water_type_code, process_code, flowmeter_code, is_total_consumption_count, del_flag, tenant_id, create_by, create_time, update_by, update_time, workspace_code, unit) VALUES ({id}, {device_water_id}, '{data_group}', '{water_code}', '{water_name}', '{water_type_code}', '{process_code}', '{flowmeter_code}', '{is_total_consumption_count}', {del_flag}, {tenant_id}, {create_by}, '{create_time}', {update_by}, '{update_time}', '{workspace_code}', '{unit}')"
    cur.execute(insert_query)
    conn.commit()
    print(insert_query)

# 插入20条数据
for _ in range(20):
    insert_data()

# 关闭游标和数据库连接
cur.close()
conn.close()

上述代码完成后运行结果如下图所示,实现了向device_water插入20条数据,具体多少条数据可以更改。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值