关闭

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

发表于:2024-5-08 09:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:M&T.    来源:51Testing软件测试网原创

  一、文章介绍
  本文主要介绍在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位字符串,由小写字母、大写字母和数字组成。
本文节选自第七十七期《51测试天地》
python 脚本-利用psycopg2 插件向postgre 构造测试数据》一文
想继续阅读全文或查看更多精彩内容,请点击下载:
  版权声明:本文出自《51测试天地》第七十七期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号