菁英科技(卓目鸟学苑)- 专注软件测试菁英教育
标题:
接口测试_白李娜_20210322
[打印本页]
作者:
つ兜兜里没糖
时间:
2021-3-22 19:55
标题:
接口测试_白李娜_20210322
本帖最后由 つ兜兜里没糖 于 2021-3-22 19:55 编辑
1.自动化测试框架
线性脚本框架,数据驱动自动化框架,关键字驱动自动化框架,模块驱动自动化框架,混合自动化框架
数据驱动自动化框架
将测试数据与测试脚本分离,基于模块化的测试库,一个驱动脚本可以执行多个相似测试。数据驱动测试框架使用外部数据(excel,xml
数据库等)作为输入控制和验证自动化测试的操作
数据分层设计:
环境数据:ini
用例数据:yaml
接口地址(常量):代码
代码分层设计:
在一个自动化工程中,可能包含哪些东西。
与项目无关的操作(CAW Common Action Word util):读写文件的操作(读取环境数据、读取用例数据);数据库操作(预置数据、检查结果)、日志打印
与项目有关的操作(BAW Business Action Word):
金融项目:用户模块、项目模块(按模块组织,每个模块的接口放到一个文件中。)
租车系统:客户管理、车辆管理、租车单管理……
可扩展性
可维护性高
易用性好
实现过程
创建目录结构
将环境信息写到文件中,env.ini ,封装一个方法读环境信息
url
数据库 ip、端口号、数据库名字、用户名、密码
将用例的数据写到文件中,读取用例数据,yaml来描述
注册的用例共有几个测试逻辑(测试步骤)?
原则
初始化环境:该用例需要的环境,在脚本中构造对应的环境
清理环境:脚本执行前是什么样子,脚本执行后仍恢复成什么样子。
这个脚本下次还能执行
这个脚本执行完不能影响下个脚本执行
脚本之间不能有依赖。A脚本注册,B脚本登录,不允许
注册成功
下发请求
检查响应的结果
检查系统中是否有这个用户
删除注册用户
注册失败
下发请求
检查响应的结果
重复注册
下发请求
下发请求
检查响应的结果
删除注册用户
'''
脚本层的一些公共方法
整个执行过程只执行一次
'''
import
pytest
from
zonghe.caw
import
FileRead
from
zonghe.caw.BaseRequests
import
BaseRequests
#
测试前置,
session
级别的,整个过程执行一次
#
读取
url
@pytest.fixture
(
scope
=
'session'
)
def
url
():
return
FileRead.read_ini(
r"dataenv/env.ini"
,
"url"
)
#
读取
db
@pytest.fixture
(
scope
=
'session'
)
def
db
():
#
配置文件中读取出来的是字符串,但是需要一个字典
#
字符串转字典
eval
return
eval
(FileRead.read_ini(
r"dataenv/env.ini"
,
"db"
))
#
创建
BaseRequests
的实例
@pytest.fixture
(
scope
=
'session'
)
def
baserequests
():
return
BaseRequests()
'''
读文件相关的操作
'''
import
configparser
import
os
import
yaml
def
get_project_path
():
'''
获取工程路径
:return
:
'''
# print(__file__)
file_path = os.path.realpath(__file__)
#
当前文件的路径
dir_path = os.path.dirname(file_path)
#
获取文件所在目录的路径
dir_path = os.path.dirname(dir_path)
#
获取上一级路径
return
dir_path +
"
\\
"
def
read_ini
(file_path
,
key):
'''
读文件配置,根据
key
取
value
:param
file_path:
文件路径
:param
key: key
:return
: key
对应的
value
'''
# configparser
是
Python
中专门读配置文件的模块
config = configparser.ConfigParser()
# config.read(file_path)
config.read(get_project_path() + file_path)
# env
对应
ini
文件的
[env],
也就是
section
value = config.get(
"env"
,
key)
return
value
def
read_yaml
(file_path):
'''
读取
yaml
文件
:param
file_path: yaml
文件路径
:return
:
'''
file_path = get_project_path() + file_path
with
open
(file_path
,
"r"
,
encoding
=
'utf-8'
)
as
f :
content = f.read()
#
读取文件
#
转成
yaml
格式的
return
yaml.load(content
,
Loader
=yaml.FullLoader)
#
测试代码,用完可以删除
if
__name__ ==
'__main__'
:
#
绝对路径使用时不方便,如果不存在
D
盘,或许不存在这个路径,脚本无法执行
# D:\java\ApiAutoTest\zonghe\
这一段的路径通过脚本自动获取
url = read_ini(
r"dataenv\env.ini"
,
"url"
)
print
(url)
db = read_ini(
r"dataenv\env.ini"
,
"db"
)
print
(db)
print
(read_yaml(
r"datacase\register_fail.yaml"
))
欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/)
Powered by Discuz! X3.4