HttpRunner3.X - 连接数据库实践
时间:2021-08-19
本文章向大家介绍HttpRunner3.X - 连接数据库实践,主要包括HttpRunner3.X - 连接数据库实践使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、前言
做自动化测试的时候,有时要跟数据库有交互,经常遇到的场景有:
- 从数据库中读取数据,并将这些数据作为接口参数使用
- 从数据库中读取数据,并断言接口返回的数据与落表的数据是否一致
二、文件目录框架如下
三、创建数据库配置文件 config/config.ini
输入自己用的数据库的相关信息即可,这里我给 user_name 赋值了一个 SQL语句,可以根据需求调整。
[Mysql] user_name = select room_name from clothim where created_name="李白" [DATABASE] host = 192.8.0.2 user = doud passwd = Oc0C&=3a port = 13306 database = croom
四、创建读取数据库配置文件 readConfig.py
import os,codecs,configparser #创建读取数据库配置文件 class ReadConfig: def __init__(self): self.cf = configparser.ConfigParser() #实例化configparser对象 #获取当前文件夹的父目录绝对路径 self.path = os.path.dirname(os.path.dirname(__file__)) #获取config文件夹中的ini文件 self.file_path = os.path.join(self.path,'config','config.ini') #读取ini文件 self.cf.read(self.file_path,encoding='utf-8') def Mysql(self,name): value = self.cf.get("Mysql",name) return value def DataBase(self,name): value = self.cf.get("DATABASE",name) return value
五、连接数据库及执行数据库文件 mysqlDB.py
import pymysql from config.readConfig import ReadConfig #连接数据库及执行数据库文件 mysql = ReadConfig() class MysqlDb: def __init__(self): self.host = mysql.DataBase("host") self.user = mysql.DataBase("user") self.passwd = mysql.DataBase("passwd") self.port = mysql.DataBase("port") self.database = mysql.DataBase("database") self.db = pymysql.connect(host=self.host,user=self.user,password=self.passwd,database=self.database,port=13306,charset="utf8") def execute(self,sql,data): connect = self.db cursor = connect.cursor() cursor.execute(sql % data) connect.commit() def execute_read(self,sql,data): connect = self.db cursor = connect.cursor() cursor.execute(sql % data) for row in cursor.fetchall(): return row def user_name(self): sql = mysql.Mysql("user_name") data = self.execute_read(sql,()) return data def user_code(self): sql = mysql.Mysql("user_code") data = self.execute_read(sql,()) return data
六、在 debugtalk.py(必须是这里)中写一个查询数据 sql 的方法
import time from httprunner import __version__ from mysqlDB import MysqlDb #定义查询数据 sql 的方法 mysqlDB = MysqlDb() def get_user_name(): user_name = mysqlDB.user_name() return user_name[0]
七、在测试用例中调用该方法
用 $ 符号即可
"username": "${get_user_name()}"
八、运行脚本即可
原文地址:https://www.cnblogs.com/Chilam007/p/15161517.html
- zepto 基础知识(5)
- 移动Web 开发中的 Off Canvas 导航
- Angularjs基础(八)
- 移动Web 开发中的一些前端知识收集汇总
- Angularjs基础(七)
- WordPress 中八个有用的代码片段
- 【释疑文】DeveMobile、EaseMobile 及Devework 主题的区别
- DeveMobile/EaseMobile 主题双双更新1.1,增加离线存储,社交媒体关注等功能
- Angularjs基础(六)
- 如果机器人拥有痛觉,这个世界会怎样
- 阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页
- 专门攻击工资支付系统的网络犯罪
- Angularjs基础(五)
- DW Replace Open Sans:将WordPress 后台中的open-sans字体加载源从Google Fonts换为360 CDN
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 牛X | 一款比传统数据库快100-1000倍的数据库,认识一下
- SpringBoot统一参数校验
- SpringBoot多邮件源发送邮件
- 一个基础的SpringBoot项目该包含哪些
- leetcode树之平衡二叉树
- 3分钟短文:说说Laravel页面会话之间的数据保存Session用法
- Skywalking Php注册不上问题排查
- 第4章代码-图形几何变换
- 第5章代码-三维观察
- 我的2020 九月iOS面试秘籍,为你的跳槽保驾护航
- SAP Spartacus layout设计原理
- Angular依赖注入的一个例子和注入原理单步调试
- Angular依赖注入的一个常见错误NullInjectorError,No provider for XXX
- Redis系列(十二)scan Info Object等特殊命令集合
- 使用纯CSS给网站文章中的外链添加小图标