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

摘要:
前言cy Exec()可以执行系统命令以获取标准输出内容。当我们需要操作数据库和准备测试数据时,使用python连接到数据库通常非常方便。我们可以首先将操作数据库的方法封装到一个py文件中,以便将执行结果打印到控制台输出中,并通过执行cy.exec()获得stdout内容。
前言

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:Cypresscypressfixturesdelete_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命令操作数据库第1张

免责声明:文章转载自《Cypress web自动化35-cy.exec()执行python命令操作数据库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇实战RPM包制作PHP 字符串左边补0,字符串右边补0下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

面面俱到:SQL SERVER 2008主数据管理

SQLSERVER 2008R2中提供了主数据服务。很多人对主数据服务比较陌生。我们先介绍主数据服务的应用范畴。 主数据服务是当企业的规模达到一定的规模后,因企业信息化战略发展的需要。需要将企业内信息进行统一规划、形成制定统一的标准。建立一套统一的公共数据标准及维护体系、一个统一的公共数据平台。使其各子系统均按照统一的标准使用公共数据。使企业在信息化形成一...

python-上传文件的几种方式

from requests_toolbelt import MultipartEncoder import requests # from_data上传文件,注意参数名propertyMessageXml data = MultipartEncoder(fields={'propertyMessageXml': ('filename', open('D:...

PL/SQL 导入excel表格到oracle数据表

通过使用PL/SQL 批量查询取数时,将excel中的每一列数据复制黏贴进新建的中间表,黏贴时会有贴歪的情况,也就是某些列会从第二第三行开始插入整列,导致数据乱掉,然后好像又不支持批量删除整列数据,所以一次性导入整张excel表是最佳方法啦。 第一步: 将excel中要插入oracle的数据全部选中:(必须选中,不然导不进数据库) 第二步: 然后另存为:...

Python自动化之pytest框架使用详解

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(...

怎么删除表空间对应的某一个数据文件

如果想要删除表空间的数据文件,最好且最安全的办法是,删除表空间后重建 步骤如下:   1,导出该表空间中的所有内容;   2,删除表空间:DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS;   3,重新创建新的表空间及其数据文件;   4,将导出的数据导入表空间; 但是在实际应用环境中,数...

像Excel一样使用python进行数据分析(3)

像Excel一样使用python进行数据分析(1) 像Excel一样使用python进行数据分析(2) 7,数据汇总 第七部分是对数据进行分类汇总,Excel中使用分类汇总和数据透视可以按特定维度对数据进行汇总,python中使用的主要函数是groupby和pivot_table。下面分别介绍这两个函数的使用方法。 分类汇总 Excel的数据目录下提供了“...