测试新手如何用Python写删除数据脚本

发布时间:2022-03-16 09:19:29 人气:266 作者:多测师

  1. 缘起

  app使用的是微信授权的登陆方式,一个微信账号可以注册一个app的用户。

  app的新手会有相应的业务对应。

  测试需要大量新手账号。

  实际测试中不可能有大量真实的微信账号,即便有也会有用完的一天。

  为了解决上面的问题,那么我们先来看看一般的注册登陆流程:

  微信授权---->客户端----->登陆&注册接口----->持久化用户信息------> 后续操作

  其中我们可控制的就是 持久化用户信息 这一步骤,我们可以通过反复删除或者修改用户信息的方法,来创建多个新的账号。

  那么一般的步骤是这样:

  打开navicat 选择数据库,数据表(demo.user)

  编写sql语句,查出用户信息(select * from demo.user where id = xxxxx)

  修改或者删除对应记录(update | delete )

  微信授权,客户端调用后端接口,重新生成一条数据 (手动操作,点击微信登陆按钮 )

  以上步骤如果手动操作至少要30S时间。

  其中只有第2条,有变化的部分,就是用户id,那么我们完全可以写一个脚本,来减少重复操作。

  2. 思想行动

  谋而后动,我们来想想我们大概要面临的问题:

  如何能快速方便执行脚本(命令行)

  脚本用什么语言(所有可以方便使用的语言都可以)

  如何连接数据库(不知道,面向百度编程吧)

  未知问题(到时候再说!)

  经过激烈到不能在激励的思想行动后,我们决定,开始动手了。

测试新手如何用Python写删除数据脚本

  3. 动手吧

  我们还是用python3吧,用户大,所以我们首先要有个python3环境,如何安装百度,这个很简单。

  3.1 创建目录和文件

  创建一个目录,专门用来放各种小脚本:

  [@Hyman:~]$ mkdir min_scripts

  进入目录,创建一个脚本:

  [@Hyman:~]$ cd min_scripts/

  [@Hyman:min_scripts]$ touch clear_wechat.py

  使用vim编辑clear_wechat.py编写世界通用的HelloWorld程序:

  #!/usr/local/bin/python3

  # 第一行,是指定python3所在的位置,这样就可以使用.来执行了

  import sys # 导包

  print(sys.version) # 打印版本信息,确定是你要用的python版本

  print('Hello World!!!')

  3.2 修改文件可连接远程mysql数据库

  我们先安装一下包:

  [@Hyman:min_scripts]$ pip3 install PyMySQL

  Requirement already satisfied: PyMySQL in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.9.3)

  我的已经安装过了,所以会出现上面的提示。

  做一个简单的查询操作:

  import pymysql

  # 打开数据库连接

  db = pymysql.connect("localhost","root","root","TESTDB" )

  # 使用cursor()方法获取操作游标

  cursor = db.cursor()

  # SQL 查询语句

  sql = "select current_timestamp from dual;"

  try:

  cursor.execute(sql)# 执行SQL语句

  results = cursor.fetchall()# 获取所有记录列表

  print(results)

  except:

  print ("Error: unable to fetch data")

  # 关闭数据库连接

  db.close()

  使用./clear_wechat.py执行脚本结果,发现没有报错,证明连接数据库是正常的,那么我们修改上面代表,让他能完成我们想要的接结果

  3.3 编写删除记录的sql

  我们可以在testQA库下面创建一张 test_user表,结构如下:

  CREATE TABLE `test_user` (

  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

  `name` varchar(50) NOT NULL,

  PRIMARY KEY (`id`)

  ) ENGINE=InnoDB DEFAULT CHARSET=latin1

  插入一条测试数据:

  insert into test_user values(1,'zhangsan');

  准备好了,我们就修改上面的脚本:

  import pymysql

  # 打开数据库连接

  db = pymysql.connect("localhost","root","root","TESTDB" )

  # 使用cursor()方法获取操作游标

  cursor = db.cursor()

  # SQL 查询语句

  sql = "delete from test_user where id = 1;"

  try:

  cursor.execute(sql)# 执行SQL语句

  #results = cursor.fetchall()# 获取所有记录列表

  #print(results)

  db.commit()

  except:

  #print ("Error: unable to fetch data")

  db.rollback()

  # 关闭数据库连接

  db.close()

  如果是对于数据的写操作,要有db.commit()操作,这样才能完成操作哦!!!

  3.4 给脚本文件传参

  在上面,我呢看到sql中,id是写死的,在实际操作中,几乎不可能这样,如果写死那么写脚本就变的没有意思,所以,我们要给python文件传递参数,百度一下:python文件传参 https://www.cnblogs.com/lijunjiang2015/p/7689492.html

  第一步,引入sys包(这个我们开头就做了)

  import sys

  第二步,我们查实传递一个参数进行打印操作

  print(sys.argv[1])

  第三步,传递一个参数给脚本进行测试

  [@Hyman:min_scripts]$ ./clear_wechat.py dddddddd

  正常打印,说明是成功的。我们真正要用的可不是打印那么简单,我们把他和sql拼接:

  sql = "delete from test_user where id = %s " % sys.argv[1]

  插入一条id为2的数据作为测试数据,执行脚本./clear_wechat.py 2来试一下吧:

  [@Hyman:min_scripts]$ ./clear_wechat.py 22

  查看数据表中的内容进行验证,发现数据已经被删除。

  4. 拓展

  实际工作中,提供一个http接口,可以让更多人访问。

  以上内容为大家介绍了测试新手如何用Python写删除数据脚本,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线