exec sp_executesql执行结果返回临时表_Cypress web自动化35cy.exec()执行python命令操作数据库...

本文介绍了如何在Cypress测试中利用`cy.exec()`执行Python脚本来操作数据库。通过将数据库操作封装到Python文件中,然后使用`cy.exec()`执行命令并获取stdout内容,可以方便地进行测试数据的准备。示例中展示了删除数据库user表用户的过程,并提供了断言和日志输出。
摘要由CSDN通过智能技术生成

前言

cy.exec()可以执行系统命令,获取到stdout内容,当我们要操作数据库,准备测试数据的时候,通常用python连数据库操作会非常方便。
我们可以先把操作数据库的方法封装到一个py文件,这样执行的结果print到控制台输出上,通过执行cy.exec()获取到stdout内容就可以了。

python操作数据库

使用python清理测试数据,如需要注册一个用户,可以先在数据库user表删除这个用户,就可以重复去注册用户了

# delete_sql.py
import pymysql
'''
环境安装
pip install PyMySQL==0.9.3
作者:上海-悠悠 交流QQ群:939110556
'''

dbinfo = {
"host": "192.168.1.x",
"user": "root",
"password": "123456",
"port": 3306}

class DbConnect():
def __init__(self, db_cof, database=""):
self.db_cof = db_cof
# 打开数据库连接
self.db = pymysql.connect(database=database,
cursorclass=pymysql.cursors.DictCursor,
**db_cof)

# 使用cursor()方法获取操作游标
self.cursor = self.db.cursor()

def select(self, sql):
# SQL 查询语句
# sql = "SELECT * FROM EMPLOYEE \
# WHERE INCOME > %s" % (1000)
self.cursor.execute(sql)
results = self.cursor.fetchall()
return results

def execute(self, sql):
# SQL 删除、提交、修改语句
# sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
# 执行SQL语句
self.cursor.execute(sql)
# 提交修改
self.db.commit()
except:
# 发生错误时回滚
self.db.rollback()

def close(self):
# 关闭连接
self.db.close()

if __name__ == '__main__':
delete_sql = 'delete from auth_user WHERE username="test100";'
try:
db = DbConnect(dbinfo, database="apps")
db.execute(delete_sql) # 查询
db.close()
print("success")
except Exception as msg:
print("execute sql error:%s"%str(msg))

执行结果:success

cy.exec() 执行py

delete_sql.py 文件放到一个目录,如:D:\Cypress\cypress\fixtures\delete_sql.py

  • cy.exec() 执行cmd命令行指令

  • result    执行结果返回 {stdout: “success”, stderr: “”, code: 0}

  • cy.log()  报告输出日志内容

  • expect    断言返回结果

/**
* Created by dell on 2020/5/11.
* 作者:上海-悠悠 交流QQ群:939110556
*/

describe('执行系统命令', function() {
// 执行sql清理测试数据
beforeEach(() => {
cy.exec("python D:\\Cypress\\cypress\\fixtures\\delete_sql.py")
.then(result => {
var a = result.stdout;
// 打印结果
cy.log(a)
// 断言 返回结果
expect(result.stdout).eq("success")
})

})

it("写用例", () =>
{
// 输入用户名
cy.visit('https://www.cnblogs.com/yoyoketang')

})
})

运行结果

17408dc898c3ed70f073b9bc84082188.png
2020年第四期《python接口自动化+测试开发》课程,7月4号开学(火热报名中!)
本期上课时间:7月4号-9月26号,每周六、周日晚上20:30-22:30
联系QQ:283340479

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值