软测学习知识小记——数据库

小记

记录每天所学知识点,复习巩固。

一、作为测试工程师什么要学习数据库?

在软件开发领域,数据库作为存储、检索、管理和分析数据的核心组件,其稳定性和性能直接关系到软件应用的可靠性和用户体验。因此,对于测试工程师而言,掌握数据库知识不仅是职业发展的必要技能,更是确保软件质量的关键一环。以下是几个关键原因,解释了为何测试工程师需要深入学习数据库:

  • 搭建高效测试环境

    测试环境的搭建离不开数据的支持。测试工程师需要能够创建、配置和初始化数据库,以模拟生产环境中的数据场景。这包括设计合理的测试数据结构、填充测试数据以及确保数

  • 验证数据完整性与一致性

    测试工程师需设计并执行测试用例,验证应用对数据库的操作(如增删改查)是否按预期执行,确保数据的准确性和完整性。

  • 构建测试数据

    在日常的测试实践中,面对因各种复杂因素导致无法直接执行的测试用例时,为了保持测试流程的连续性和效率,我们常采取一种策略:即通过直接操作数据库来修改或生成必要的数据。这种方法能够巧妙地绕过当前技术或资源限制下无法直接测试的功能点,确保我们能够顺利推进至后续的测试阶段,从而保持整体测试计划的完整性和进度。

二、常见的关系型数据库和非关系数据库

  • 常见关系型数据库:

mysql:MySQL是一种开源的关系型数据库管理系统,广泛应用于各种规模的应用程序中。它具有良好的性能、可靠性和可扩展性,并支持多种操作系统和编程语言。

Oracle:Oracle Database是由Oracle Corporation开发的一种商业级关系型数据库系统。它具有高度的可靠性、安全性和可扩展性,并提供了丰富的功能和工具,适用于大型企业应用。

sql server:Microsoft SQL Server是由Microsoft开发的一种关系型数据库管理系统,广泛应用于Windows平台。它提供了高度集成的数据库解决方案,支持大规模数据处理和企业级应用。

sqllite:SQLite是一种轻量级的嵌入式关系型数据库,它以其简单、快速和可靠的特性而受到广泛使用。SQLite适用于嵌入式设备和移动应用等场景。

  • 非关系数据库

redis:Redis 是一个高性能的内存中数据存储系统,支持多种类型的数据结构如字符串、哈希、列表等。它以其极快的读写速度、丰富的数据类型和灵活的数据操作而闻名,常用于缓存、实时分析、消息队列等场景。尽管数据存储在内存中,Redis 提供了磁盘持久化功能以确保数据安全性。简而言之,Redis 是一个快速、灵活且功能丰富的内存数据库。

hbase:HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,旨在存储并处理大型的数据集。

mongodb:MongoDB数据库是一个免费开源的跨平台NoSQL数据库,其命名源于英文单词"humongous",意为“巨大无比”,这体现了开发组对MongoDB的定位。MongoDB是一个高可用、分布式、灵活模式的文档数据库,专为大容量数据存储而设计。

NoSQL:NoSQL数据库的产生主要是为了应对大规模数据集合和多重数据种类带来的挑战,特别是解决大数据应用中的难题。与传统的关系数据库(如MySQL、Oracle等)相比,NoSQL数据库具有显著的不同特点和应用场景。

三、搭建mysql数据库管理系统

mysql免安装版配置/启动过程
-1)将mysql-8.0.18-winx64.zip压缩包解压只某个具体路径(该路径不能包含中文路径)
0)在mysql的根目录下新建一个空的data文件夹和一个文档my.ini(mysql配置文件)
1)将mysql的bin目录添加到环境变量中
2)以管理员身份打开cmd命令窗口
3)在CMD命令行窗口下运行下面命令,初始化mysql数据字典, 初始化mysql数据库
mysqld --initialize-insecure --user=mysql
4)、安装mysql服务
mysqld --install mysql的服务名
示例:mysqld --install mysqlt49
5)、启动mysql服务
net start mysql服务名 (启动mysql服务)
net stop mysql服务名 (停止mysql服务)
sc delete mysql服务名 (删除mysql服务 )

6)、CMD中登录mysql
mysql -uroot -p 回车直接登录

7)进入数据库之后,在mysql中运行下面的SQL,己重新设置密码
alter user ‘root’@‘localhost’ identified by ‘123456’;
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123456’;

8)在mysql中运行下面的SQL,允许root用户可以远程登录
use mysql;
update user set host=‘%’ where user=‘root’;
flush privileges; #刷新权限表

涉及文件:mysql-8.0.18-winx64.zip、mysql8免安装版配置.txt

四、数据库相关指令

  1. 创建数据库
    语法:create database 库名;
    例如:create database study_01 [default character set 字符集(gbk/utf8)]

  2. 查看数据库服务器上有哪些库
    语法:show databases;

  3. 查看数据库有哪些表
    (1)语法:use 库名;show tables;
    (2)语法:show tables from study_01;

  4. 查看表结构
    语法:desc 表名; 或者show create table表名;

  5. 批量执行数据库脚本
    通过cmd窗口批量执行数据库脚本,步骤如下:
    (1) cmd窗口连接数据库:mysql [-h数据库ip地址] [-p端口号] -uroot -p;
    (2) 切换至具体的库(看脚本里有没有指明哪个库,没有就切换):use 库名;
    (3)(如果出现中文乱码)设置客户端字符集与服务器端保持一致:set names 字符集(gbk/utf8);
    (4)批量执行数据库脚本:source D:\\aa\\emp_data.sql;
    涉及文件 emp_data.sql数据集

五、面试题小记

软测基础:

  1. 什么是软件测试?
  2. 软件测试的作用是什么?
  3. 你对产品质量是怎么理解的?
  4. 在测试中,如果没有发现任何bug是不是测试活动没有意义了?
  5. 开发人员说不是bug时,你如何应付?
    在这里插入图片描述
接入第三方登录是让用户方便快捷地使用已有账号登录你的网站或应用程序,提高用户体验的一种方式。本文将介绍如何使用 PHP 实现微信公众号第三方登录。 1. 获取微信授权 首先,需要获取微信用户的授权。具体步骤如下: 1)引导用户打开微信授权页面: ```php $appid = 'your_appid'; $redirect_uri = urlencode('http://yourdomain.com/callback.php'); $scope = 'snsapi_userinfo'; $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=$scope&state=STATE#wechat_redirect"; header("Location: $url"); ``` 其中,`$appid` 是你的微信公众号的 AppID,`$redirect_uri` 是授权后回调的 URL,`$scope` 是授权作用域,可以是 `snsapi_base` 或 `snsapi_userinfo`,`$state` 是自定义参数,用于防止 CSRF 攻击。 2)获取授权码: 用户同意授权后,会重定向到 `$redirect_uri` 指定的 URL,带上授权码 `code` 和 `state` 参数。 ```php $code = $_GET['code']; $state = $_GET['state']; ``` 3)获取 access_token 和 openid: 使用授权码 `code` 获取 `access_token` 和 `openid`。 ```php $access_token_url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $response = file_get_contents($access_token_url); $result = json_decode($response, true); $access_token = $result['access_token']; $openid = $result['openid']; ``` 其中,`$secret` 是你的微信公众号的 AppSecret。 2. 获取用户信息 获取到 `access_token` 和 `openid` 后,可以使用以下代码获取用户信息: ```php $userinfo_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN"; $response = file_get_contents($userinfo_url); $userinfo = json_decode($response, true); ``` 其中,`$userinfo` 包含用户的昵称、头像等信息。 3. 将用户信息保存到数据库 最后,将获取到的用户信息保存到数据库中,以便下次使用时快速登录。 ```php // 连接数据库 $con = mysqli_connect('localhost', 'username', 'password', 'database'); mysqli_set_charset($con, "utf8"); // 查询用户是否已存在 $sql = "SELECT * FROM users WHERE openid='$openid'"; $result = mysqli_query($con, $sql); if (mysqli_num_rows($result) == 0) { // 用户不存在,插入新用户信息 $nickname = mysqli_real_escape_string($con, $userinfo['nickname']); $headimgurl = mysqli_real_escape_string($con, $userinfo['headimgurl']); $sql = "INSERT INTO users (openid, nickname, headimgurl) VALUES ('$openid', '$nickname', '$headimgurl')"; mysqli_query($con, $sql); } // 保存用户登录状态 $_SESSION['openid'] = $openid; ``` 以上就是使用 PHP 实现微信公众号第三方登录的步骤。需要注意的是,为了确保安全性,应该对用户输入的数据进行过滤和验证,防止 SQL 注入和 XSS 攻击等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值