python+request+pymysql+pytest数据驱动
一.pymysql简单使用
1.安装mysql
下载地址:https://www.mysql.com/,安装教程这里不做介绍了,网上一大推。
2.安装pymysql库
在Terminal终端输入:pip install pymysql
3.pymysql操作数据库
1)导入pymysql库,创建数据库连接
conn = pymysql.connect(host="127.0.0.1", # 本地服务ip
user="root", # 用户名
password="root", # 密码
database="pymysql", # 库
port=3306, # 端口号
autocommit=False, # 是否自动提交
charset="utf8") # 设置utf编码
2)创建游标
execute()执行sql语句
cur = conn.cursor() # 创建游标
sql = "create table student(id int(10),name varchar(10))"
cur.execute(sql) # 执行sql,执行后返回的是影响的条数
创建游标执行sql语句后fetchall()默认返回元组类型的数据,我们要想让其返回dict类型的,可加入相应参数
cur = conn.cursor(pymysql.cursors.DictCursor)
executemany()执行sql语句
a_list = [(1, "李明"), (2, "李祥")]
sql = "insert into student (id,name ) values (%s,%s)" # %s占位符,通用的
cur_list = cur.executemany(sql, a_list) # 批量执行sql
executemany(self, query, args):为执行批量语句时使用的,query为执行的sql语句,args为传入的数据,列表中嵌套元组类型。
execute()也可批量执行语句,只是执行效率没executemany()快,因此执行单条语句时推荐使用execte(),批量时推荐使用exectemany()。
3)返回查询数据的操作
cur.fetchone() : 返回查询第一条的结果集
cur.fetchall() : 返回所有的查询结果集,元组类型
cur.fetchmany(): 默认返回第一条结果集,可手动在括号中填写返回条数
cur.rowcount:返回影响的条数。注意这里是属性,不是方法
4)commit的使用
我们在操作数据库时,进行增删改后需求提交,否则的话数据库对应的数据是不会发生变化的
conn.commit()
若的创建数据库连接的时候autocommit设置为True,自动提交后。此步骤可省略
5)执行完毕后,关闭游标和数据库连接
cur.close()
conn.close()
二.数据驱动
1)我们以获取企业微信token为例,首先先从数据库获取相应的数据

def pymysql_01():
# 创建数据库连接
conn = pymysql.connect(host="127.0.0.1", # 本地服务ip
user="root", # 用户名
password="root", # 密码
database="li", # 库
port=3306, # 端口号
autocommit=False, # 是否自动提交
charset="utf8") # 设置utf编码
cur = conn.cursor(pymysql.cursors.DictCursor) # 创建游标 pymysql.cursors.DictCursor为查询时返回dict类型
sql = "select * from pymysql"
cur.execute(sql)
list_id = []
for i in cur.fetchall():
list_id.append(i)
cur.close()
conn.close()
return list_id
2)@pytest.mark.parametrize()实现数据驱动
@pytest.mark.parametrize("param", pymysql_01())
def test_weixin(param):
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
data = requests.get(url, params=param)
assert data.json()["errcode"] == 0
3)运行结果当然也是完美的

文章来源:https://www.cnblogs.com/lihongtaoya/ ,请勿转载
python+request+pymysql+pytest数据驱动的更多相关文章
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- python+request+robot framework接口自动化测试
python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...
- python之pymysql模块学习(待完善...)
pymysql介绍 pymysql是在python3.x版本中用于连接mysql服务器的一个库.python2中则使用mysqldb. 安装方法: pip install pymysql 使用实例: ...
- python request
python request a. 客户端向服务端发送多层字典的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 obj = ...
- python的pymysql模块简介
一.介绍 在python中用pymysql模块来对mysql进行操作,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pip3 install pymysql 二.操作简介 import py ...
- python中pymysql使用
python中pymysql使用 https://blog.csdn.net/johline/article/details/69549131 import pymysql # 连接数据库 conne ...
- python request接口测试笔记(1)
python request接口测试笔记(1) 涉及到的功能说明: 需要登录拿到token,才能进行下一个接口的请求 读取csv文件中的信息,作为接口的参数 将接口响应结果,写入csv文件,以便分析统 ...
- Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁
Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...
- Python进阶----pymysql模块的使用,单表查询
Python进阶----pymysql模块的使用,单表查询 一丶使用pymysql 1.下载pymysql包: pip3 install pymysql 2.编写代码 ...
随机推荐
- openstack 虚拟机网卡被重名为cirename0
虚拟机网卡被重名为cirename0 在虚拟机挂载多网卡情况下,你在虚拟机上卸载网卡后,再创建新的port挂给虚拟机使用,如果虚拟机不经过重启的话,是不会有任何问题的.但是,如果虚拟机重启了,你 ...
- Nginx listen、server_name、location的配置
# Nginx静态资源的配置指令 # listen指令 # 语法 listen address[:port][default_server] # 如: listen 127.0.0.1:8000: # ...
- Charles 某音最新版本抓包环境搭建
本文仅供学习交流使用,如侵立删! Charles 某音最新版本抓包环境搭建 操作环境 google nexus5x Android 8.1 Magisk 24.3 Douyin 17.3 kaliLi ...
- Apache Hudi vs Delta Lake:透明TPC-DS Lakehouse性能基准
1. 介绍 最近几周,人们对比较 Hudi.Delta 和 Iceberg 的表现越来越感兴趣. 我们认为社区应该得到更透明和可重复的分析. 我们想就如何执行和呈现这些基准.它们带来什么价值以及我们应 ...
- 使用.NET简单实现一个Redis的高性能克隆版(四、五)
译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单.高性能兼容Redis协议的数据库的经历. 首先这个"Redis"是非常简单的实现,但是他 ...
- 海豚调度5月Meetup:6个月重构大数据平台,帮你避开调度升级改造/集群迁移踩过的坑
当今许多企业都有着技术架构的DataOps程度不够.二次开发成本高.迁移成本高.集群部署混乱等情况,团队在技术选型之后发现并不适合自己的需求,但是迁移成本和难度又比较大,甚至前团队还留下了不少坑,企业 ...
- 巨细靡遗流程控制,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang流程结构详解EP09
流程结构就是指程序逻辑到底怎么执行,进而言之,程序执行逻辑的顺序.众所周知,程序整体都是自上由下执行的,但有的时候,又不仅仅是从上往下执行那么简单,大体上,Go lang程序的流程控制结构一共有三种: ...
- python推导式与海象运算符
背景:介绍两种python用于语句优化的用法 一.推导式 1.推导式简介: Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体. 支持:列表(list).元 ...
- java-前端之css
css样式: <!-- 内联样式:在元素的style属性内写样式 --> <h2 style="color: red;">愿你单枪匹马,亦能所向披靡!< ...
- Java SE 13 新增特性
Java SE 13 新增特性 作者:Grey 原文地址:Java SE 13 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...