本框架适合对Pytest有大概认识(比如看完X站3天课程的水平),职场新人没有雄厚的资本去参加专业的培训、功能测试转自动化测试、开发转测试的小伙伴们。
首先介绍下这个框架的使用,看看是不是你所需要的。
第一步、添加模块PY文件,编写接口代码。
class TestJuhe:
#upwei:fanfanzb2023
@pytest.mark.run(order=1)
@pytest.mark.parametrize("testcase", get_testcase_yaml("./testcases/test_Juhe_post_login.yaml"))
def test_post_login(self, testcase):
allure.dynamic.feature(testcase["feature"])
allure.dynamic.story(testcase["story"])
allure.dynamic.title(testcase["title"])
RequestBase().specification_yaml(testcase)
#upwei:fanfanzb2023
@pytest.mark.run(order=2)
@pytest.mark.parametrize("testcase", get_testcase_yaml("./testcases/test_Juhe_UserInfo.yaml"))
def test_get_UserInfo(self,testcase):
allure.dynamic.feature(testcase["feature"])
allure.dynamic.story(testcase["story"])
allure.dynamic.title(testcase["title"])
RequestBase().specification_yaml(testcase)
统一模板,只需要修改接口对应的Yaml数据文件。
保留Pytest框架,便与理解,配置灵活,比如conftest.py夹具配置,接口的执行顺序@pytest.mark.run(order=1)等。
第二步、编写用例yaml数据文件
- 单条用例
- feature: 登录模块
story: 登录接口
title: 登录成功的用例
request:
method: POST
url: /api/login
header:
Content-Type: application/json
json:
account: [email protected]
password: "123456"
validation:
- {contains: {"code": 200 }}
- {eq: { 'message': '成功!' }}
extract:
access_token: $.result.token
access_token2: $.result.token
- 多条用例
- feature: 登录模块
story: 登录接口
title: $ddt{title}
request:
method: POST
url: /api/login
header:
Content-Type: application/json
json:
account: $ddt{account}
password: $ddt{password}
validation:
- $ddt{validation}
extract:
access_token: $.result.token
access_token2: $.result.token
parametrize:
- ["title","account","password","validation"]
- ["登录失败的用例-密码不正确","[email protected]","123456789",'{"contains": { "message": "登录失败,请检查账号密码!"}}']
- ["登录失败的用例-用户名不正确","[email protected]","123456",'{"contains": { "message": "登录失败,请检查账号密码!" }}']
- ["登录成功","[email protected]","123456",'{"contains": { "code": "200" }}']
- 使用提取的变量,加密,特殊处理的变量
- feature: 登录模块
story: 获取个人信息接口
title: 获取成功-成功取得个人信息
request:
method: get
url: /api/getUserInfo
header:
token: ${get_extract_data(access_token)}
validation:
- {contains: { 'code': 200 }}
执行生成报表如下:
以上就完成了自动化测试,生成报表。
==================== 我是分割线 ===================
下面简述下jenkins集成关键步骤:
第一步、配置git,自动拉取自动化测试代码。
要点:虽然需要生成ssh的公钥私钥credentials, 但是repository URL一定是git上http的链接,而不是ssh的链接。
jenkins安装参照:2023最新Jenkins安装指南,基本配置,镜像修改以及注意点_将软件测试进行到顶的技术博客_51CTO博客
第二步、设置自动化测试脚本的执行
第三步、设置脚本触发条件,这里是定时触发半小时触发一次
第四步、设置邮件发送
亲测,球球邮箱也是可以的,有的说不行。
效果如下:
以上是整个流程的简介,各种细节会在其他文章中分享,持续更新,希望对大家有帮助。