每个公司都有自己的模板,大体上的性能测试方案的内容上出入不到,包含以下内容;
测试环境的搭建,需要了解首先了解项目的架构,是使用LNMP,还是JAVA、C#等,不同的架构方式的部署,后面有时间出一些文章进行项目部署的内容;
通常,我们在搭建集成测试环境之时,会使用Jenkins与docker搭建流水线,开发只需要在gitlab上发起合并请求给测试,测试合并之后,jenkins就会就行编译、打包、部署;
1、通过使用Jmeter,调用实际业务接口进行造数;
例如:我们可以模拟实际用户操作页面的操作,调用相应的接口;
2、通过使用Jmeter,进行对表进行增删改查操作,达到造数;
3、使用存储过程造数
使用存储过程造数,一般都是适合表数据量比较少,简单,优点就是快;
4、使用脚本造数,可以使用python/java等语言,编写造数脚本;
python,封装mysql
import pymysql
class MysqlUtil:
# 初始化
__conn = None
__cursor = None
# 创建连接
@classmethod
def __get_conn(cls):
if cls.__conn is None:
cls.__conn = pymysql.connect(host="数据库",
port=端口,
user="用户名",
password="密码",
database="数据库")
return cls.__conn
# 获取游标
@classmethod
def __get_cursor(cls):
if cls.__cursor is None:
cls.__cursor = cls.__get_conn().cursor()
return cls.__cursor
# 执行sql
@classmethod
def exe_sql(cls, sql):
try:
# 获取游标对象
cursor = cls.__get_cursor()
# 调用游标对象的execute方法,执行sql
cursor.execute(sql)
# 如果是查询
if sql.split()[0].lower() == "select":
# 返回所有数据
return cursor.fetchall()
# 否则:
else:
# 提交事务
cls.__conn.commit()
# 返回受影响的行数
return cursor.rowcount
except Exception as e:
# 事务回滚
cls.__conn.rollback()
# 打印异常信息
print(e)
finally:
# 关闭游标
cls.__close_cursor()
# 关闭连接
cls.__close_conn()
# 关闭游标
@classmethod
def __close_cursor(cls):
if cls.__cursor:
cls.__cursor.close()
cls.__cursor = None
# 关闭连接
@classmethod
def __close_conn(cls):
if cls.__conn:
cls.__conn.close()
cls.__conn = None
封装后,只需要引用上封装好的包,编辑SQL即可;
from tools.mysql_util import MysqlUtil
a=MysqlUtil.exe_sql("select * from tb_board")
print(a)
性能监控就是监控服务器的各项性能指标。例如:监控CPU、内存、网络、TPS、磁盘IO等
注意 :系统调优由易到难的先后顺序如下:1. 硬件问题2. 网络问题3. 应用服务器、数据库等配置问题4. 源代码、数据库脚本问题5. 系统构架问题