• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

postman\Mysql测试面试题

武飞扬头像
萌萌哒小宝宝
帮助1

sql语句万能写法

select 表名.字段1,字段2,…字段n from 表1,表2,表3
where 关联条件1 and/or 过滤条件1 and/or 过滤条件2
group by 字段1,字段2
having 分组后过滤条件1 and/or 过滤条件2
order by 字段名1 asc/desc ,字段名2 asc/desc

去重复:distinct

常见避坑点?

1、熟练并能够手写出关键字
2、熟练使用sql语句编写的基本思路及写法

dos窗口启动mysql命令:net start mysql

一线大厂常见sql面试考点

1、三表进行关联,需要几个关联条件(n个表有几个关联条件?)

三表进行关联,需要2个关联条件,n个表有(n-1)个关联条件

2、数据统计与分组

常见统计函数:
求最大值:max(字段名)
求最小值:min(字段名)
统计和:sum(字段名)
统计总数:count(字段名)
平局值:avg(字段名/表达式)

重点:
1、熟悉常见的统计函数
2、什么情况下遇到group by
3、在select后面,group by后面有的字段,select后面才可以有,除了统计函数

3、子查询

什么是子查询:通过一对()的sql,先执行子查询,再去执行主查询
子查询分为两种:单行子查询和多行子查询
子查询作为sql语句的条件的一部分或者作为表使用

考题:

学新通
1、统计每个学生的总成绩(由于学生可能有重复的名字),并且总成绩不小于270,显示字段:学生id,姓名,总成绩

select id,sname sum(score) from student,score 
where student.id=score.sid 
group by student.id ,sname
having sum(score)>270

统计函数不能写到where后面

在select后面,group by后面有的字段,select后面才可以有,除了统计函数

2、查询单科最好成绩的学员信息,显示:学生id,学生姓名,科目,成绩

select id,sname,coursename ,score from score,student,course,(select cid,max(score)gscore from score group by cid)t
where student.id=score.sid and course.courseid=score.cid and t.cid=score.cid and t.gscore=score.score

3、行转列
计算每个人的成绩,总分数、平局值,要求显示:学号、姓名、语文、数学、英语、总分、平均分

select id,name,courseid,coursename,score,'语文','数学','英语'
(case when coursename='语文' then score else 0 end) as 语文
(case when coursename='数学' then score else 0 end) as 数学
(case when coursename='英语' then score else 0 end) as 英语
from student,score course
where student.id=score.sid and score.cid=course.courseid

学新通
对上面表的数据进行统计和汇总 group by
多表查询、分组统计

select id,name,
sum(case when coursename='语文' then score else 0 end) as 语文
sum(case when coursename='数学' then score else 0 end) as 数学
sum(case when coursename='英语' then score else 0 end) as 英语
sum(score) as 总成绩,avg(score) as '平均成绩'
from student,score course
where student.id=score.sid and score.cid=course.courseid
group by id,name

postman

为什么做接口测试?

1、前后端分离
2、基于安全考虑(有时候前端没有控制住)
3、推崇测试前移

接口数据类型

1、json:http协议、dubbo协议

  键值对
  数组

2、html:http协议
3、xml:webservice

返回字段

1、错误码:error_code
2、错误码中文说明:msg
3、数据:data

你了解http协议吗?

http是一种超文本传输协议,主要的作用是浏览器和服务器之间交互数据,交互分为:请求,响应
请求:请求行,请求头、请求正文
        请求行:请求方式get、post、put、delete、请求地址、请求协议
        请求头:
	        host:请求主机地址
	        connection:keep-alive
	        content-type:内容类型
	        X-requested-with:异步请求
	        Cookie:cookie信息
        请求正文:请求数据
响应:响应行、响应头、响应正文

接口关联、接口鉴权、接口加密、接口签名

为什么做接口关联?

主要是因为接口与接口之间有业务关联

postman接口关联方式:

1、json提取器关联
2、正则表达式关联
3、cookie关联

var data = JSON.parse(responseBody)   将responseBody转化为json格式

json提取器关联
学新通
正则表达式提取:

//match匹配
var access_token = responseBody.match(new RegExp('"access_tpken":"(. ?)"'))

cookie提取:
cookie是浏览器和服务器交互的一种数据,这种数据格式是键值对格式,
原理:当浏览器第一次访问服务器的时候,那么服务器会生成cookie并且发送给浏览器,然后,浏览器在2-n次访问服务器发送请求的时候会自动带cookie信息。主要是用于鉴权

postman的cookie提取

var csrf_token = postman.getResponseCookie("csrf_token")

精通postman接口测试:

接口关联、接口鉴权、接口加密、接口签名
1、基本发送get、post
2、postman的动态参数、内置和自定义
3、三种接口关联方式
4、批量运行测试用例
5、环境变量和全局变量
6、六种断言方式

1、断言返回状态码
2、断言返回结果中包含指定的字符串
3、检查json中其中一个字段的值
4、断言返回的结果是否等于一个字符串

7、postman接口的加密与解密
8、postman的接口签名
9、动态函数以及自定义函数
10、postman的导入导出以及如何和Jenkins实现持续集成

注意:
1、在tests断言里面不能使用{{}}取全局变量,只能通过 pm.globals.get(“times”)或者globals(“times”)或者globals.times获取全局变量
2、在参数里面获取数据文件的值和全局变量一致,在断言里面取数据文件的使用方式:data["名称“] (数据驱动csv)
3、数据驱动csv文件编码格式必须为:UTF-8

request函数详解:

method:请求方式
url:请求地址
params:get请求传参
data:post请求传参(可以传字符串,也可以传字典,但是字典只支持键值对的字典,不支持嵌套字典)
json:post请求传参(只能传字典,任意字典)
geaders:请求头
cookies:cookie
files:文件上传
auth:鉴权
timeout:超时
verify:SSL证书验证,verify=false忽略ssl证书验证
proxies:代理

一定要看源码:
1、给我们提供思路,借鉴别的的封装方式

data:post请求传参(可以传字符串,也可以传字典,但是字典只支持键值对的字典,不支持嵌套字典)
json:post请求传参(只能传字典,任意字典)

json.loads():反序列化,把字符串转化为字典
json.dumps():序列化,把字典转化为字符串

postman接口测试之cookie鉴权

接口鉴权、接口加密、接口签名(金融项目、银行项目、信贷项目)

1、什么是cookie?
cookie的本质是一段文本信息,客户端第一次访问服务器时,那么服务器不知道客户端的身份,送一就需要创建一个身份,这个身份标识就是cookie,以键值对的方式保存

2、cookie鉴权原理?
当客户端第一次访问服务器时,那么服务器就会生成cookie,并且把生成的cookie信息放到响应头的set-cookie字段里面,然后发送给客户端,客户端收到cookie就会保存起来,然后在第2-n次请求服务器的时候自动带上cookie信息实现鉴权

3、cookie分类
会话cookie:保存在内存中,浏览器关闭之后自动消失
持久cookie:保存在硬盘中,浏览器关闭之后不会自动消失,只有当持久化的时间到期才会消失
学新通
4、数据格式
name:cookie的名称
value:cookie的值
domain:cookie作用的IP地址
path:cookie所在的服务器上面的项目的路径
expires in:失效时间
size:大小

接口加密解密

目前市面上有那些加密方式
对称式加密方式:base64(常用)、不常用:DES和AEC
1、base64加密:

//base64加密方式
var username = CryptoJS.enc.Utf8.parse("admin");  //转为utf-8
var base64_username = CryptoJS.enc.Base64.stringify(username);  //转为base64加密
console.log(base64_username);
//base64解密方式
var base64_username = CryptoJS.enc.Base64.parse("YWRtaW4=");
var username = base64_username.toString(CryptoJS.enc.Utf8)
console.log(username)

2、非对称加密方式(双钥(公钥、私钥)):RSA加密方式
由一个密码生成双钥,公钥加密,私钥解密
3、只加密不解密
(1)MD5

//MD5加密
var user_name = CryptoJS.MD5("admin").toString().toUpperCase();
console.log(user_name)

Newman(非GUI的方式运行)

postman为接口而生,Newman为postman而生
运行命令:newman run

常用参数:
    -e:使用环境变量
    -g:使用全局变量
    -d:使用csv、json数据驱动
    -n:循环次数
    -r cli,html,json,junit --reporter-html-export   生成html报告

应用步骤:
1.导出用例,环境变量、全局变量、数据文件—json格式
2.运行并生成html报告

newman run setNextRequest.postman_collection.json -d data.json -r html

postman Newman Jenkins持续集成

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbekeb
系列文章
更多 icon
同类精品
更多 icon
继续加载