问题背景:

接口自动化测试平台,在执行测试案例之外,还需要做以下五件事情(或步骤):

1.查询用户在数据准备中预置的测试套件层数据初始化相关sql  (setUp_class方法中)

2.查询用户在数据准备中预置的测试案例层数据初始化相关sql    (setUp_method方法中)

3.查询用户在数据准备中预置的测试套件层数据清理相关sql       (tearDown_class方法中)

4.查询用户在数据准备中预置的测试案例层数据清理相关sql       (tearDown_method方法中)

5.全部案例执行结束之后将结果写入t_execution及t_result表      (tearDown_class方法中)

代码修改:

原来的代码是在每个方法中执行查询操作,然后在tearDown_class方法中执行 5.全部案例执行结束之后将结果写入t_execution及t_result表

考虑到性能问题

优化后的代码为:

将1-4中的步骤提前,全部查询出来数据之后,再分别执行setUp_class、setUp_method、tearDown_class、tearDown_method方法

事情5仍然放在tearDown_class中

问题出现:

修改完代码之后,在开发环境验证了一个案例相对比较少,全部执行时间只有10+s的模块,没有出现问题,准备按时上线

结果上线之后,跑了一个案例比较多,全部执行时间有4m多的模块,结果报:pymysql.err.InterfaceError: (0, '')

问题解决:

修改第5步中 执行更新 t_execution及t_result不关闭连接,最后在finally中关闭连接  -->未起作用

将修改之前的代码重新上传至服务器,验证没有问题  -->自己修改的代码有问题

突然意识到将所有查询数据准备sql的代码提前之后,再到将最后的结果更新 到t_execution及t_result之前,数据库的连接有很长一段时间的空闲时间,于是尝试在更新结果之前重新建立连接,修改完代码,并部署到服务器之后 -->验证没有问题

以上为我自己的解决方法,不知道说清楚没有,希望看到文章的你提出宝贵意见

附:别处看到的更专业也更有可能有用的解决方法跟思路

(21条消息) 【Python】数据库异常pymysql.err.InterfaceError: (0, '')解决方案_2021 真实-CSDN博客_pymysql.err.interfaceerror

【Python+Django+Pytest】数据库异常pymysql.err.InterfaceError: (0, '') 解决方案的更多相关文章

  1. MySQL数据库报错pymysql.err.InterfaceError: (0, '')

    今天入库的时候出现了报错pymysql.err.InterfaceError: (0, ''),经过排查,发现是由于把连接数据库的代码放到了插入函数的外部,导致多线程运行出错 def write_in ...

  2. pycharm pymysql连接mysql 报错 pymysql.err.InterfaceError: (0, '')

    pycharm  pymysql连接mysql  执行MySQL操作遇到以下报错信息: conn.query(q) File "C:\Software\Python37\lib\site-p ...

  3. pymysql.err.InterfaceError: (0, '')解决办法

    导致这个错误的原因是通过pymysql连接MySQL,没有关闭连接的操作,所以短时间内不会出问题,长时间保持这个连接会出现连接混乱.虽然看着自己的代码没错,还是会报 pymysql.err.Inter ...

  4. Python连接MySQL数据库之pymysql模块使用

    安装PyMySQL pip install pymysql PyMySQL介绍 PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,2中则使用mysqldb. Django中也 ...

  5. Mysql(九):Python连接MySQL数据库之pymysql模块使用

    Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...

  6. Mysql失败,异常pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9D\\x90\\xBF;......

    问题描述: 插入Mysql时失败了,python代码报如下异常: pymysql.err.InternalError: (1366, "Incorrect string value: '\\ ...

  7. 关于python+django操作数据库中的表

    数据库中的表示这样设计的 class C(models.Model): name = models.CharField(max_length=32) class B(models.Model): na ...

  8. Python和MySQL数据库交互PyMySQL

    Python数据库操作 对于关系型数据库的访问,Python社区已经指定了一个标准,称为Python Database API SepcificationV2.0.MySQL.Qracle等特定数据库 ...

  9. python django 与数据库的交互

    下载没有任何问题的mysqdb http://www.codegood.com/archives/4 1创建一个新的app. python manage.py startapp books 2 激活a ...

随机推荐

  1. SpringBoot的定时任务

    springBoot定时任务可分为多线程和单线程,而单线程又分为注解形式,接口形式 1.基于注解形式 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影 ...

  2. 使用IDEA整合spring4+spring mvc+hibernate

    配置文件 spring-mvc.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans x ...

  3. C++STL标准库学习笔记(三)multiset

    C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标 ...

  4. MySQL——基础查询与条件查询

    基础查询 /* 语法: select 查询列表 from 表名; 类似于:System.out.println(打印东西); 1.查询列表可以是:表中的字段.常量值.表达式.函数 2.查询的结果是一个 ...

  5. Vector Demo

    /* * vectorDemo.cpp * * Created on: Jul 17, 2014 * Author: lichfeng */ #include<vector> #inclu ...

  6. SQL Server中的函数

    字符串函数 日期函数 数学函数 系统函数

  7. rinted端口转发

    https://www.cnblogs.com/linuxk/p/10075803.html 阿里云Redis外网转发访问   1.前提条件 如果您需要从本地 PC 端访问 Redis 实例进行数据操 ...

  8. TURN协议初识及turnserver实践

    WebRTC协议栈 图一 WebRTC stack TURN的全称为Traversal Using Relays around NAT,是STUN/RFC5389的一个拓展,主要添加了Relay功能. ...

  9. 『学了就忘』Linux日志管理 — 91、日志服务rsyslogd说明

    目录 1.日志文件格式 2.rsyslogd服务的配置文件 (1)rsyslog.conf文件内容 (2)rsyslog.conf配文件内容说明 (3)定义自己的日志 1.日志文件格式 只要是由日志服 ...

  10. nim_duilib(6)之listbox

    introduction 更多控件用法,请参考 here 和 源码. 本文的代码基于这里 本文将演示listbox的添加,删除,删除选中项,添加到指定位置等常用功能. xml文件添加代码 基于上一篇, ...