• 0
  • 0
分享
  • 接口自动化:操作数据库mysql——软件测试圈
  • 北极 2021-06-23 16:08:02 字数 1715 阅读 1184 收藏 0

常见数据库:mysql、oracle、sqlserver、mongodb、access

需要有数据库驱动来操作:

操作mysql数据库:db-api,pymysql

安装:pymsql库 第三方库

import pymysql

from pymysql.cursors import DictCursor

1.建立连接:

conn = pymysql.connect(host="",user="",password="",database="",port= ,charset=“utf8”,cursorclass=DictCursor)

cursorclass=DictCursor 读取的是元组类型,可读性不强,换成字典,导入这个就变成了字典,需要导入

1.jpg

2.建立游标:

cursor = conn.cursor() 相当于发起请求

3.执行sql:

cursor.execute(“SELECT * FROM 表 limit 2;”)

sql:尽量大写,容易出错

参数(query,args=None)(sql语句,条件如id=1)

传递参数的第一种方式:format --不要用,因为sql注入,写错会导致删库/删表

cursor.execute(“select * from member where mobile_phone={}”.format(mobile)) # 对于动态的mobile

传递参数的第二种方式:args参数:- 方式传递,用%s占坑符 --和python的%s不一样 args = tuple, list or dict

cursor.execute(“select * from member where mobile_phone=%s”,args=[mobile, ]) # 对于动态的mobile

多个参数

cursor.execute(“select * from member where mobile_phone=%s and id=%s”,args=[mobile, 1])

4.获取结果:

cursor.fetchone() # 一条数据
cursor.fetchall() # 全部数据

注意点:同一个游标,多次查询,会导致查询的数据不一样,可以通过新创建一个游标,类似文件操作中的光标

cursor_other = conn.cursor()
cursor_other.fetchone()
cusor_other.execute(“SELECT * FROM 表 limit 2;”)

5.关闭:不关闭会导致内存变多

cursor.close() # 游标关
conn.close() # 连接关

封装为类:

import pymysql
class DbHandler:
def __init__(self,host,user,password,
database,port,charset,
cursorclass=DictCursor,**kw):
# 建立连接
conn = pymysql.connect(config=config,host=host,
password=password,database=database,
port=port,charset=charset,
cursorclass=cursorclass,**kw)
# 建立游标
cursor = conn.cursor()
# 查询 - 提交事务 - 获取结果 - one/all
def query(self,sql,args=None,one=True)
# 执行
self.cursor.excute("sql语句", args)
self.conn.commit()
# 获取结果
if one:
return self.cursor.fetchone()
else:
return self.cursor.fetchall()
# 关闭
def close()
self.cursor.close()
self.conn.close()


作者:国民老公六哥

原文链接:https://blog.csdn.net/weixin_44941728/article/details/105422403

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   每个应用程序(桌面、网络或移动)在发布到市场之前都需要进行测试。功能测试被认为是最重要的测试类型,因为首先,应用程序必须做它需要做的事情。  功能测试验证每个软件功能的操作是否符合需求规范。如果应用程序不能满足其功能需求,它可能无法长期存在。  在任何应用程序的生命周期中,这种类型的测试都是一个关键且代价高昂的活动。因此,功能测试自动化是提高软件质量和降低测试成本的有效解决方案。  这项工作将引入功能测试和自动化来测试网络应用程序。我将探索如何设计功能测试用例,并使用一个众所周知的测试工具自动化它们。  什么是功能测试?  功能测试是一种测试类型,其中软件根据其功能需求规范进行测试,以发现...
            0 0 1014
            分享
          •   “工欲善其事必先利其器”,通过前边几篇文章的介绍,大家大致对接口有了进一步的认识。那么接下来让我们看看接口测试的工具有哪些。目前,市场上有很多支持接口测试的工具。利用工具进行接口测试,能够提供测试效率。例如,让你一天完成100个接口测试任务,你觉得你加班能完成,那么1000个、10000个......  如果有工具,可以大大提高你的效率,可以达到事半功倍,但是不是所有工具都能够支持你完成这个任务。下面我们就来挑选几个常用和常见的工具,简单介绍一下。如果需要或者有兴趣可以在网上查看各种工具对应的资料进行深入人的学习,这里带领大家了解一下,碰到这些工具会用、了解、知道这些工具就达到目的了,不要...
            0 0 976
            分享
          •   SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码规范,安全性漏洞等问题, 并通过SonarQube web UI展示出来。  1 Sonar简介  1.1 sonarQube是什么?  1、代码质量和安全扫描和分析平台。  2、多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。  3、支持25+编程语言的代码扫描和分析,包含java\python\C#\javascript\go\C++等。  4、涵盖了编程语言的静态扫描规...
            0 1 7031
            分享
          •   工作以来,大大小小参与的项目也有十几个了,涵盖财务类、保险类、OA办公类软件,从测试流程上看,基本也都大同小异,这里将常见的测试流程做一些梳理,供刚入行的朋友学习参考,也欢迎大家完善补充。  一、需求答疑评审  参与人员:  产品、开发、测试、需求提出人、其它相关人员。  主要内容:  对需求文档进行评审,对于有疑问或者有错误的地方,进行讨论沟通,来保证对需求理解的准确性和一致性。需求文档中最好有业务流程图,能够较好的帮助相关人员快速的了解业务需求。  目标达成:  通过此次会议了解到各模块对应开发人员,以此来确定测试时间  二、罗列测试点  主要内容:  需求评审通过后,测试根据定版的需...
            0 0 921
            分享
          •   数据库大量应用程序开发项目中,大多数情况下,数据库的操作性能成为整个应用的性能瓶颈。数据库的性能是程序员需要去关注的事情,当设计数据库表结构以及操作数据库(尤其是查询数据时),都需要注意数据操作的性能。本文我们以MySQL数据库为例进行讨论。  一、数据库优化目标  1、减少 IO 次数  IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。  2、降低 CPU 计算  除了 IO 瓶颈之外,SQL优化中需要考虑的就是...
            8 8 1825
            分享
      • 51testing软件测试圈微信