项目名称、测试人员名称动态化
This commit is contained in:
parent
1148b7af9e
commit
6ffc901b09
|
@ -8,6 +8,8 @@ ProjectName:
|
|||
- 余少琪的框架
|
||||
-
|
||||
|
||||
# 测试人员名称,作用于自动生成代码的作者,以及发送企业微信、钉钉通知的测试负责人
|
||||
TestName: 余少琪
|
||||
# 域名1
|
||||
merchant: https://redisdatarecall.csdn.net
|
||||
# 域名2
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : 2022-01-05 15:45:56
|
||||
# @Author : 余少琪
|
||||
|
||||
|
||||
from tools.requestControl import RequestControl
|
||||
from tools.yamlControl import GetCaseData
|
||||
from setting import ConfigHandler
|
||||
|
||||
|
||||
class DateDemo(object):
|
||||
@staticmethod
|
||||
def dateDemo(inData):
|
||||
"""
|
||||
测试接口
|
||||
:param inData:
|
||||
:return:
|
||||
"""
|
||||
|
||||
resp = RequestControl().HttpRequest(inData['method'], inData)
|
||||
return resp
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
path = GetCaseData(ConfigHandler.data_path + 'DateDemo.yaml').get_yaml_case_data()[0]
|
||||
data = DateDemo().dateDemo(path)
|
||||
print(data)
|
||||
|
|
@ -23,3 +23,5 @@
|
|||
%(levelname)-8s2022-01-05 14:29:29,345 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs\error.log:conftest.py:94 执行失败用例数:0
|
||||
%(levelname)-8s2022-01-05 14:41:23,821 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs\error.log:conftest.py:94 执行失败用例数:0
|
||||
%(levelname)-8s2022-01-05 14:41:23,821 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs\error.log:conftest.py:94 执行失败用例数:0
|
||||
%(levelname)-8s2022-01-05 16:20:15,786 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/error.log:conftest.py:95 执行失败用例数:0
|
||||
%(levelname)-8s2022-01-05 16:20:15,786 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/error.log:conftest.py:95 执行失败用例数:0
|
||||
|
|
|
@ -375,3 +375,29 @@
|
|||
数据库断言数据: {'sql': None}
|
||||
函数名称: _DoRequest
|
||||
=================================================================================
|
||||
%(levelname)-8s2022-01-05 16:20:14,772 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:run.py:19
|
||||
_ _ _ _____ _
|
||||
__ _ _ __ (_) / \ _ _| |_ __|_ _|__ ___| |_
|
||||
/ _` | '_ \| | / _ \| | | | __/ _ \| |/ _ \/ __| __|
|
||||
| (_| | |_) | |/ ___ \ |_| | || (_) | | __/\__ \ |_
|
||||
\__,_| .__/|_/_/ \_\__,_|\__\___/|_|\___||___/\__|
|
||||
|_|
|
||||
开始执行余少琪的框架项目...
|
||||
|
||||
%(levelname)-8s2022-01-05 16:20:15,771 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:logDecorator.py:25
|
||||
=================================================================================
|
||||
测试标题: 测试接口
|
||||
请求方式: POST
|
||||
请求头: {'Content-Type': 'application/json;charset=UTF-8'}
|
||||
请求路径: https://redisdatarecall.csdn.net/recommend/get_head_word
|
||||
请求内容: {'requestType': 'params', 'bid': 'blog-121903028'}
|
||||
接口响应内容: {'status': 200, 'msg': '查询成功', 'content': ['pytest', 'gitee', 'yaml', 'api', 'jenkins', 'sdn'], 'error': False}
|
||||
数据库断言数据: {'sql': None}
|
||||
函数名称: _DoRequest
|
||||
=================================================================================
|
||||
%(levelname)-8s2022-01-05 16:20:15,773 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:assertControl.py:67 断言成功, 预期值:200, 断言类型==, 实际值200
|
||||
%(levelname)-8s2022-01-05 16:20:15,785 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:conftest.py:92 执行用例总数: 1
|
||||
%(levelname)-8s2022-01-05 16:20:15,785 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:conftest.py:93 执行通过用例数:1
|
||||
%(levelname)-8s2022-01-05 16:20:15,786 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:conftest.py:97 执行异常用例数:0
|
||||
%(levelname)-8s2022-01-05 16:20:15,786 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:conftest.py:99 执行跳过用例数:0
|
||||
%(levelname)-8s2022-01-05 16:20:15,787 C:\Users\hzxy\PycharmProjects\py_auto_demo\logs/info.log:conftest.py:101 执行成功率: 成功率:100.00%
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"code": {
|
||||
"jsonpath": "$.status",
|
||||
"type": "==",
|
||||
"value": 200,
|
||||
"AssertType": null
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"requestType": "params",
|
||||
"bid": "blog-121903028"
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
INFO C:\Users\hzxy\PycharmProjects\py_auto_demo\logs\info.log:logDecorator.py:25
|
||||
=================================================================================
|
||||
测试标题: 测试接口
|
||||
请求方式: POST
|
||||
请求头: {'Content-Type': 'application/json;charset=UTF-8'}
|
||||
请求路径: https://redisdatarecall.csdn.net/recommend/get_head_word
|
||||
请求内容: {'requestType': 'params', 'bid': 'blog-121903028'}
|
||||
接口响应内容: {'status': 200, 'msg': '查询成功', 'content': ['pytest', 'gitee', 'yaml', 'api', 'jenkins', 'sdn'], 'error': False}
|
||||
数据库断言数据: {'sql': None}
|
||||
函数名称: _DoRequest
|
||||
=================================================================================
|
||||
INFO C:\Users\hzxy\PycharmProjects\py_auto_demo\logs\info.log:assertControl.py:67 断言成功, 预期值:200, 断言类型==, 实际值200
|
|
@ -1 +0,0 @@
|
|||
{"uuid": "a1866f8f-4a99-4dca-b068-cc903e6cb33a", "children": ["d84cbb19-8d9e-49dc-8e3a-359b8a89a0df"], "befores": [{"name": "clear_report", "status": "passed", "start": 1641364883649, "stop": 1641364883651}], "afters": [{"name": "clear_report::0", "status": "passed", "start": 1641364883813, "stop": 1641364883813}], "start": 1641364883649, "stop": 1641364883813}
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"status": 200,
|
||||
"msg": "查询成功",
|
||||
"content": [
|
||||
"pytest",
|
||||
"gitee",
|
||||
"yaml",
|
||||
"api",
|
||||
"jenkins",
|
||||
"sdn"
|
||||
],
|
||||
"error": false
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"Content-Type": "application/json;charset=UTF-8"
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{"uuid": "86ea7d00-99ad-480a-bf5e-838921fbe614", "children": ["d84cbb19-8d9e-49dc-8e3a-359b8a89a0df"], "befores": [{"name": "_session_faker", "status": "passed", "start": 1641364883583, "stop": 1641364883649}], "start": 1641364883583, "stop": 1641364883814}
|
|
@ -1 +0,0 @@
|
|||
{"name": "测试接口", "status": "passed", "description": "\n 测试\n :param :\n :return:\n ", "steps": [{"name": "请求URL: https://redisdatarecall.csdn.net/recommend/get_head_word", "status": "passed", "start": 1641364883804, "stop": 1641364883804}, {"name": "请求方式: POST", "status": "passed", "start": 1641364883804, "stop": 1641364883804}, {"name": "请求头: ", "status": "passed", "attachments": [{"name": "请求头: ", "source": "a6992401-f4a4-4bed-a47f-99a2d05bb31d-attachment.json", "type": "application/json"}], "start": 1641364883804, "stop": 1641364883805}, {"name": "请求数据: ", "status": "passed", "attachments": [{"name": "请求数据: ", "source": "19d2118d-eb6d-45b9-a4cd-3d61dfc59101-attachment.json", "type": "application/json"}], "start": 1641364883805, "stop": 1641364883806}, {"name": "预期数据: ", "status": "passed", "attachments": [{"name": "预期数据: ", "source": "1315df09-7668-46d3-9204-ebb7170e7352-attachment.json", "type": "application/json"}], "start": 1641364883806, "stop": 1641364883806}, {"name": "响应结果: ", "status": "passed", "attachments": [{"name": "响应结果: ", "source": "934fdad3-a23b-4d27-bfc0-3d8b9fe2f82b-attachment.json", "type": "application/json"}], "start": 1641364883807, "stop": 1641364883807}, {"name": "响应耗时(s): 0.146848", "status": "passed", "start": 1641364883807, "stop": 1641364883807}], "attachments": [{"name": "log", "source": "5971f4c5-5177-46f8-b164-a216d86c3c2d-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "inData", "value": "{'url': 'https://redisdatarecall.csdn.net/recommend/get_head_word', 'method': 'POST', 'detail': '测试接口', 'headers': {'Content-Type': 'application/json;charset=UTF-8'}, 'data': {'requestType': 'params', 'bid': 'blog-121903028'}, 'resp': {'code': {'jsonpath': '$.status', 'type': '==', 'value': 200, 'AssertType': None}}, 'sql': None}"}], "start": 1641364883652, "stop": 1641364883812, "uuid": "d84cbb19-8d9e-49dc-8e3a-359b8a89a0df", "historyId": "cf046faa21073990d2fce36a28f15f21", "testCaseId": "e70babf13dba7acb8e74d703c3ea391c", "fullName": "test_case.TestMerchant.TestLogin.test_case_demo.TestShopList#testDemo", "labels": [{"name": "story", "value": "这是一个测试的demo接口"}, {"name": "epic", "value": "测试平台端"}, {"name": "feature", "value": "测试模块"}, {"name": "parentSuite", "value": "test_case.TestMerchant.TestLogin"}, {"name": "suite", "value": "test_case_demo"}, {"name": "subSuite", "value": "TestShopList"}, {"name": "host", "value": "LAPTOP-8FNP3JVN"}, {"name": "thread", "value": "11068-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "test_case.TestMerchant.TestLogin.test_case_demo"}]}
|
|
@ -1 +0,0 @@
|
|||
{"uuid": "208d7ac7-9271-4ac7-970d-e2dafe45dbca", "befores": [{"name": "inData", "status": "passed", "start": 1641364883651, "stop": 1641364883651}], "start": 1641364883651, "stop": 1641364883812}
|
Binary file not shown.
|
@ -13,6 +13,7 @@ from tools.localIpControl import get_host_ip
|
|||
from tools.yamlControl import GetYamlData
|
||||
|
||||
_PROJECT_NAME = GetYamlData(ConfigHandler.config_path).get_yaml_data()['ProjectName'][0]
|
||||
_TEST_NAME = GetYamlData(ConfigHandler.config_path).get_yaml_data()['TestName']
|
||||
|
||||
|
||||
@pytest.fixture(scope="session", autouse=True)
|
||||
|
@ -32,8 +33,8 @@ def clear_report():
|
|||
def sendDingNotification(totalNum: int, passNum: int, failNum: int,
|
||||
errorNum: int, skipNum: int, passRate):
|
||||
# 发送钉钉通知
|
||||
text = f"#### 婚奢汇自动化通知 \n\n>Python脚本任务: {_PROJECT_NAME}\n\n>环境: TEST\n\n>" \
|
||||
f"执行人: 余少琪\n\n>执行结果: {passRate} \n\n>总用例数: {totalNum} \n\n>成功用例数: {passNum}" \
|
||||
text = f"#### {_PROJECT_NAME}自动化通知 \n\n>Python脚本任务: {_PROJECT_NAME}\n\n>环境: TEST\n\n>" \
|
||||
f"执行人: {_TEST_NAME}\n\n>执行结果: {passRate} \n\n>总用例数: {totalNum} \n\n>成功用例数: {passNum}" \
|
||||
f" \n\n>失败用例数: {failNum} \n\n>异常用例数: {errorNum} \n\n>跳过用例数: {skipNum}" \
|
||||
f" \n" \
|
||||
f" > ###### 测试报告 [详情](http://{get_host_ip()}:9999/index.html) \n"
|
||||
|
@ -49,19 +50,19 @@ def sendEmailNotification(passNum: int, failNum: int,
|
|||
# 发送企业微信通知
|
||||
text = """【{0}自动化通知】
|
||||
>测试环境:<font color=\"info\">TEST</font>
|
||||
>测试负责人:@余少琪
|
||||
f>测试负责人:@{1}
|
||||
>
|
||||
> **执行结果**
|
||||
><font color=\"info\">{1}</font>
|
||||
>成功用例数:<font color=\"info\">{2}</font>
|
||||
>失败用例数:`{3}个`
|
||||
>异常用例数:`{4}个`
|
||||
>跳过用例数:<font color=\"warning\">{5}个</font>
|
||||
>时 间:<font color=\"comment\">{6}</font>
|
||||
><font color=\"info\">{2}</font>
|
||||
>成功用例数:<font color=\"info\">{3}</font>
|
||||
>失败用例数:`{4}个`
|
||||
>异常用例数:`{5}个`
|
||||
>跳过用例数:<font color=\"warning\">{6}个</font>
|
||||
>时 间:<font color=\"comment\">{7}</font>
|
||||
>
|
||||
>非相关负责人员可忽略此消息。
|
||||
>测试报告,点击查看>>[测试报告入口](http://121.43.35.47/:9999/index.html)""" \
|
||||
.format(_PROJECT_NAME, passRate, passNum, failNum, errorNum, skipNum, NowTime())
|
||||
.format(_PROJECT_NAME, _TEST_NAME, passRate, passNum, failNum, errorNum, skipNum, NowTime())
|
||||
|
||||
WeChatSend().sendMarkdownMsg(text)
|
||||
|
||||
|
|
|
@ -68,12 +68,12 @@ class TestCaseAutomaticGeneration:
|
|||
:param caseDetail: 函数描述,读取用例中的描述内容,做为函数描述
|
||||
:return:
|
||||
"""
|
||||
|
||||
Author = GetYamlData(ConfigHandler.config_path).get_yaml_data()['TestName']
|
||||
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
page = f'''#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# @Time : {now}
|
||||
# @Author : 余少琪
|
||||
# @Author : {Author}
|
||||
|
||||
|
||||
from tools.requestControl import RequestControl
|
||||
|
|
Loading…
Reference in New Issue