烟台企业做网站,清镇市最新消息,网站建设 网站优化,网站制作设计机构目标#xff1a;优化框架场景
1. 生成对应的接口关联【重点】
2. 优化URL基础路径封装【理解】
3. 利用PySQL操作数据库应用【理解】--- 怎么用python连接数据库、mysql
4. 通过数据库进行数据库断言【重点】
5. 通过数据库进行关联操作【重点】 一、接口关联#xff1a…目标优化框架场景
1. 生成对应的接口关联【重点】
2. 优化URL基础路径封装【理解】
3. 利用PySQL操作数据库应用【理解】--- 怎么用python连接数据库、mysql
4. 通过数据库进行数据库断言【重点】
5. 通过数据库进行关联操作【重点】 一、接口关联测试业务场景
登录成功 --- 加入购物车成功没有token
1. 登录成功之后需要提取数据 ---
格式{“变量名”“jsonpath值”} {VAR_TOKEN:$..data.token,MSG:$.msg}
提取数据方法--- 提取出来进行存储 -- all_var
1. 方法 ---数据存储到公共的变量all_var当中。
all_var {}exdata {VAR_TOKEN:$..data.token,MSG:$.msg}for key, value in exdata.items(): valueJson value提取出来的值all_var.update({key: valueJson})print(all_var) 运行结果
2. 加入购物车需要引用这个数据
{{变量名}}
代码层面需要修改增加一句代码即可。
加的两行代码是
#导入这个模板--固定的
from jinja2 import Template# Template数据A 这个数据A必须是字符串的格式所以是数据A str数据B类型转化
# render() 可以把 render(数据D)通过花括号{}变量名{{变量名}}替换到 Template数据A的模板里
# eval()里面是字典的格式CaseData eval(Template(str(CaseData)).render(self.all_var))一共就上面两句实际应用
pytest.mark.parametrize(CaseData, AllCaseData)def testData(self, CaseData):print(当前执行的测试用例接口, CaseData)self.dynamic_title(CaseData)CaseData eval(Template(str(CaseData)).render(self.all_var)) 简单应用的例子
from jinja2 import Templateall_var {VAR_TOKEN: 4534131231231321321, BOOK_ID: 178}
CaseData {url: http://novel.hctestedu.com/book/queryBookDetail/{{BOOK_ID}}, params: {token:{{VAR_TOKEN}}}}
CaseData2 eval(Template(str(CaseData)).render(all_var)) # 变量渲染--其实就是数据替换
print(CaseData2) 二、接口风格
1、传统api
发送请求 get 、post 居多
http://localhost:8080/admin/getUser 查询用户 --- get请求
http://localhost:8080/admin/addUser 新增用户 --- post请求
http://localhost:8080/admin/updateUser 更新用户--- post请求
http://localhost:8080/admin/deleteUser 删除用户--- pos请求
2、restFul风格
一. 什么是Restful风格
1.1 概念
RESTFUL是一种网络应用程序的设计风格和开发方式基于HTTP可以使用 XML 格式定义或 JSON 格式定义。最常用的数据格式是JSON。由于JSON能直接被JavaScript读取所以使用JSON格式的REST风格的API具有简单、易读、易用的特点。1.是一种风格不是协议规定这种风格更简介美观
2.基于HTTP可以使用 XML 格式定义或 JSON 格式定义前后端分离时代都用json传递数据了
————————————————原文链接https://blog.csdn.net/weixin_43189971/article/details/126024564
灵活的应用请求方法 GET http://localhost:8080/admin/user/10查询用户
POST http://localhost:8080/admin/user 新增用户
PUT http://localhost:8080/admin/user 更新用户
DELETE http://localhost:8080/admin/user 删除用户
http://novel.hctestedu.com/book/queryBookDetail/178
178 --- {书籍的ID}
修改数据成功之后获取书籍ID 调用查看详情的接口(引用ID)
http://novel.hctestedu.com/book/queryBookDetail/{{BOOK_ID}} 三、数据库操作
数据库的提取
连接数据库什么情况下进行数据的提取--比如注册完毕进行提取新增数据完毕、进行提取sqlExData 字段 思路和响应提取完全一样只是一个是写jsonpath 一个是写sql而已。
1、数据库模块
1数据库连接和操作
# 连接数据库# 1. 知道数据库用的什么第三方模块 - pymysql
# 2. 数据库的连接信息是什么
# 主机host注意没有wwwshop-xo.hctestedu.com
# 端口3306
# 用户名api_test
# 密码Aa9999!
# 数据库名shopxo_hctestedimport pymysql# 1. 配置数据库连接信息并连接
connection pymysql.connect(hostshop-xo.hctestedu.com, # 数据库地址port3306,userapi_test, # 数据库用户名passwordAa9999!, # 数据库密码dbshopxo_hctested, # 数据库名称# charset utf8 -- UTF-8 Unicode #设置编码格式
)
这个需要写到配置文件里作为数据库连接的常量 可以在关键字驱动里引用数据库连接的常量 2创建游标--操作数据库
# 创建游标对象使用它进行操作 ---相当于操作员
cursor connection.cursor()
3SQL链表查询
# SQL语句 链表查询一定要会
sql SELECT id,username,nickname FROM sxo_user where usernamehami
4 使用游标对象操作SQL
# 使用游标对象去执行操作SQL
cursor.execute(sql)# 得到结果集的下一行
result cursor.fetchone()
print(result) # 返回的元组格式。
5关闭数据库连接
# 关闭数据库连接
cursor.close() tips:
Ctrl Shift u 可以来回切换大小写HHTTP - http
2、数据提取
什么情况下进行数据的提取--比如注册完毕进行提取新增数据完毕、进行提取sqlExData 字段 思路和响应提取完全一样只是一个是写jsonpath 一个是写sql而已。
从json提取变成sql提取
{name:SELECT username FROM sxo_user WHERE usernamehami,
id:SELECT id FROM sxo_user WHERE usernamehami}
3、数据库断言 常用场景新建用户数据-- 用户表用户 新建书籍--- 书籍表书籍
excel 多2个字段
期望结果{id:75,name:hami}
实际结果{name:SELECT username FROM sxo_user WHERE usernamehami,
id:SELECT id FROM sxo_user WHERE usernamehami}
{id:75,name:hami}
assert 期望结果 实际结果 期望结果-75 可以断言成功 把这个改为89--就会执行断言失败