Cypress web自动化35-cy.exec()执行python命令操作数据库

python

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')

})

})

运行结果

以上是 Cypress web自动化35-cy.exec()执行python命令操作数据库 的全部内容, 来源链接: utcz.com/z/386886.html

回到顶部