Python 接口测试之数据库封装

900 篇文章 28 订阅
844 篇文章 0 订阅

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.5502​编辑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.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.5502https://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.5502https://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.5502https://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

做接口测试的时候,避免不了操作数据库。因为数据校验需要,测试数据初始化需要、一些参数化场景需要等。

数据库操作框架设计

这里主要操作mysql数据库,整体思路:

封装实现

具体代码实现:

import pymysql
  import json
   
   
  class OperateMysql(object):
      def __init__(self):
          # 数据库初始化连接
          self.connect_interface_testing = pymysql.connect(
              "localhost",
              "root",
              "123456",
              "test",
              charset='utf8mb4',
              cursorclass=pymysql.cursors.DictCursor
          )
   
          # 创建游标操作数据库
          self.cursor_interface_testing = self.connect_interface_testing.cursor()
   
      def select_first_data(self, sql):
          """
          查询第一条数据
          """
          try:
              # 执行 sql 语句
              self.cursor_interface_testing.execute(sql)
          except Exception as e:
              print("执行sql异常:%s"%e)
          else:
              # 获取查询到的第一条数据
              first_data = self.cursor_interface_testing.fetchone()
              # print(first_data)
              # 将返回结果转换成 str 数据格式,禁用acsii编码
              first_data = json.dumps(first_data,ensure_ascii=False)
              # self.connect_interface_testing.close()
              return first_data
   
      def select_all_data(self,sql):
          """
          查询结果集
          """
          try:
              self.cursor_interface_testing.execute(sql)
          except Exception as e:
              print("执行sql异常:%s"%e)
          else:
              first_data = self.cursor_interface_testing.fetchall()
              first_data = json.dumps(first_data,ensure_ascii=False)
              # self.connect_interface_testing.close()
              return first_data
   
      def del_data(self,sql):
          """
          删除数据
          """
          res = {}
          try:
              # 执行SQL语句
              result = self.cursor_interface_testing.execute(sql)
              # print(result)
              if result != 0:
                  # 提交修改
                  self.connect_interface_testing.commit()
                  res = {'删除成功'}
              else:
                  res = {'没有要删除的数据'}
          except:
              # 发生错误时回滚
              self.connect_interface_testing.rollback()
              res = {'删除失败'}
          return res
   
      def update_data(self,sql):
          """
          修改数据
          """
          try:
              self.cursor_interface_testing.execute(sql)
              self.connect_interface_testing.commit()
              res = {'更新成功'}
          except Exception as e:
              self.connect_interface_testing.rollback()
              res = {'更新删除'}
          return res
   
      def insert_data(self,sql,data):
          """
          新增数据
          """
   
          try:
              self.cursor_interface_testing.execute(sql,data)
              self.connect_interface_testing.commit()
              res = {data,'新增成功'}
          except Exception as e:
              res = {'新增失败',e}
          return res
      def conn_close(self):
          # 关闭数据库
          self.cursor_interface_testing.close()
   
   
  if __name__ == "__main__":
      # ()类的实例化
      om = OperateMysql()
   
      # 新增
      data = [{'id': 1, 'name': '测试', 'age': 15}, {'id': 2, 'name': '老王', 'age': 10}, {'id': 3, 'name': '李四', 'age': 20}]
      for i in data:
          i_data = (i['id'],i['name'],i['age'])
          insert_res = om.insert_data(
              """
               INSERT INTO test_student (id,name,age) VALUES (%s,%s,%s)
              """,i_data
          )
          print(insert_res)
   
      # 查询
      one_data = om.select_first_data(
          """
              SELECT * FROM test_student;
          """
      )
      all_data = om.select_all_data(
          """
          SELECT * FROM test_student;
          """
      )
      print(one_data)
      # all_data字符串类型的list转list
      print("查询总数据:%s",len(json.loads(all_data)),"分别是:%s",all_data)
   
      # 修改
      update_data = om.update_data(
          """
          UPDATE test_student SET name = '王五' WHERE id = 1;
          """
      )
      print(update_data)
   
      # 删除
      del_data = om.del_data(
          """
          DELETE FROM test_student WHERE id in (1,2,3);
          """
      )
      print(del_data)
   
      # 关闭游标
      om.conn_close()

运行结果:

为了方便演示,先注释删除数据的sql,再执行程序:

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

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

​​​软件测试面试文档

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

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值