软件测试学习记录
环境部署
本人使用Windows 搭建 Apache+MySQL+PHP 环境(WAMP),推荐新手使用phpstudy:https://www.xp.cn/download.html
https://www.xp.cn/download.html
环境部署参考文章:https://blog.csdn.net/siyinging/article/details/147615169
注:在mysql配置文件中添加兼容配置sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
SQL练习
增删查改
查询
SELECT * FROM `tp_admin` WHERE `email`="1744892419@qq.com";
SELECT * FROM `tp_admin` WHERE `user_name` LIKE "%admin%";
插入
INSERT INTO tp_admin (`user_name`, `email`, `password`) VALUES ('2201', '163.com', '1234');
更新
UPDATE `tp_admin` SET `user_name`="2202" WHERE `email`="163.com"
删除
DELETE FROM `tp_admin` WHERE `email`="163.com";
Linux练习
显示当前路径 pwd
显示当前目录文件夹 ls
切换当前路径 cd

查看日志(短日志)cat xx.log
查看日志(默认最后十条)tail xx.log
查看日志最后3条 tail -n 3 xx.log
实时监控日志 tail -f xx.log (取消监控 ctrl+c)

搜索日志中包含关键词的行内容 grep " " xx.log
搜索日志中包含关键词的行号 grep -n '' '' xx.log

功能测试
以小红书首页为例
Xmind提取测试点
依据原则:由大到小,从上至下,按模块划分,从用户操作层面考虑功能点。
1. 正向流程
-
登录后,对一篇笔记点击点赞
-
在笔记详情页双击屏幕点赞
-
查看已点赞笔记的列表
2. 反向操作
-
取消点赞(点击已点赞状态)
-
取消后重新点赞
3. 异常情况
-
连续快速点击点赞按钮
-
点赞时断网,恢复网络后状态同步
-
在别人已删除的笔记上尝试点赞
4. 边界极限
-
对同一篇笔记反复点赞/取消点赞100次
-
在短时间内对不同笔记点赞50篇(测试频率限制)
5. 关联影响
-
点赞后,笔记的点赞数是否立即+1?
-
点赞后,作者是否收到通知?
-
点赞后,在我的“赞过”列表中能否看到?
-
点赞后,在首页的推荐流中,相似笔记是否变多?

编写测试用例
依照testin众测的用例格式进行编写:

tips:用户的操作步骤就是一个功能点:点击,双击,滑动,长按,拖动,对应的功能测试要根据为用户提供的功能点进行展开。
接口测试
使用开源网站https://kdtx-test.itheima.net/#/login (admin HM_2023_test)
采用Postman进行测试获取验证码和登录模块
编写接口测试用例
项目接口文档:




根据接口文档编写正向用例:
Postman执行测试

手动输入验证码唯一识别码uuid:

再次Send: uuid已失效

设置变量并自动传参:


注意:占位符{{}}传递变量会优先将变量名识别(在Send之前),满足JSON语法格式加上双引号“”,不会将“{{}}”识别为字符串{{}}。
自动化测试
接口自动化测试
以网站的“查询课程列表”接口测试为例:




写request获取登录接口的Token,代码逻辑同下,这里直接F12截取:

先写一个简单的自动测试接口逻辑:
请求体数据根据接口文档可选,此处仅以"name"搜索:
import requests
base_url="https://kdtx-test.itheima.net/"
endpoint="api/clues/course/list"
url=base_url+endpoint
headers= {"Authorization":"Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc2OTEzZWYxLWJkZTktNDFlNS1hMTMyLWQ5YjMwYWJiNDhkZCJ9.tD7RxgUv_bm-CAweXaJIqFbeU6tfBHu1ubVvc9BdEIbVVXe5YO9xZjWblHiPGRkW00vcEFUZ7Uxe3ivWiKXLSw"
}
search_data={
"name":"java"
}
response=requests.get(url,params=search_data,headers=headers)
print("网站回复状态码:",response.status_code)
print("网站回复内容:",response.text)
封装为RequestsUtil工具:
import requests
class RequestsUtil:
def __init__(self,base_url,token):
self.base_url=base_url
self.token=token
self.headers={
"Content-Type":"application/json",
"Authorization":f"Bearer {token}"
}
self.session=requests.Session()
def send(self,endpoint,method,**kwargs):
url=self.base_url+endpoint
response=self.session.request(
method=method,
url=url,
headers=self.headers,
**kwargs
)
return response
def get(self,endpoint,params=None):
return self.send(endpoint,"get",params=params)
search_data={
"code":"sp2qo66q",
"name":"java"
}
#测试
#tools=RequestsUtil("https://kdtx-#test.itheima.net/","eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjU1YWIzN2RiLWU3NzMtNGQ#wNy1iYTc1LTU3YmJjYjVmNDY3OCJ9.Qbc7nIisdrtx3tKDksIYraYoFymH8feIb6PhhXfcuKUDGitux44NHlUqKD#TGRdl0rmdtJ6hXGHzFBj7dgjHRsg")
#response=tools.get("api/clues/course/list",search_data)
#print("网站回复状态码:",response.status_code)
#print("网站回复内容:",response.text)
更多推荐



所有评论(0)