From 6ffc901b090427563ebeee0e18bd7d6e95a114b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=99=E5=B0=91=E7=90=AA?= <1603453211@qq.com> Date: Wed, 5 Jan 2022 16:24:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=90=8D=E7=A7=B0=E3=80=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BA=BA=E5=91=98=E5=90=8D=E7=A7=B0=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/conf.yaml | 2 ++ lib/DateDemo.py | 29 ------------------ logs/error.log | 2 ++ logs/info.log | 26 ++++++++++++++++ ...668-46d3-9204-ebb7170e7352-attachment.json | 8 ----- ...b6d-45b9-a4cd-3d61dfc59101-attachment.json | 4 --- ...5177-46f8-b164-a216d86c3c2d-attachment.txt | 12 -------- ...eb3f-44e6-bb47-6204dc93c581-container.json | 1 - ...23b-4d27-bfc0-3d8b9fe2f82b-attachment.json | 13 -------- ...4a4-4bed-a47f-99a2d05bb31d-attachment.json | 3 -- ...cec1-4cdc-bb8d-7a28e46f5023-container.json | 1 - ...37-e37f-47ce-b326-534b6184e5ab-result.json | 1 - ...827d-4a92-952f-d5b660c103a0-container.json | 1 - .../conftest.cpython-38-pytest-6.2.5.pyc | Bin 5095 -> 5147 bytes test_case/conftest.py | 21 +++++++------ tools/testcaseAutomaticControl.py | 4 +-- 16 files changed, 43 insertions(+), 85 deletions(-) delete mode 100644 lib/DateDemo.py delete mode 100644 report/tmp/1315df09-7668-46d3-9204-ebb7170e7352-attachment.json delete mode 100644 report/tmp/19d2118d-eb6d-45b9-a4cd-3d61dfc59101-attachment.json delete mode 100644 report/tmp/5971f4c5-5177-46f8-b164-a216d86c3c2d-attachment.txt delete mode 100644 report/tmp/8c753509-eb3f-44e6-bb47-6204dc93c581-container.json delete mode 100644 report/tmp/934fdad3-a23b-4d27-bfc0-3d8b9fe2f82b-attachment.json delete mode 100644 report/tmp/a6992401-f4a4-4bed-a47f-99a2d05bb31d-attachment.json delete mode 100644 report/tmp/af4a859e-cec1-4cdc-bb8d-7a28e46f5023-container.json delete mode 100644 report/tmp/b35aa937-e37f-47ce-b326-534b6184e5ab-result.json delete mode 100644 report/tmp/c2925e0d-827d-4a92-952f-d5b660c103a0-container.json diff --git a/config/conf.yaml b/config/conf.yaml index 217d5ef..899ee0f 100644 --- a/config/conf.yaml +++ b/config/conf.yaml @@ -8,6 +8,8 @@ ProjectName: - 余少琪的框架 - +# 测试人员名称,作用于自动生成代码的作者,以及发送企业微信、钉钉通知的测试负责人 +TestName: 余少琪 # 域名1 merchant: https://redisdatarecall.csdn.net # 域名2 diff --git a/lib/DateDemo.py b/lib/DateDemo.py deleted file mode 100644 index 97a709c..0000000 --- a/lib/DateDemo.py +++ /dev/null @@ -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) - \ No newline at end of file diff --git a/logs/error.log b/logs/error.log index 0af3aae..90e3fa3 100644 --- a/logs/error.log +++ b/logs/error.log @@ -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 diff --git a/logs/info.log b/logs/info.log index a50faa2..37d1ebd 100644 --- a/logs/info.log +++ b/logs/info.log @@ -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% diff --git a/report/tmp/1315df09-7668-46d3-9204-ebb7170e7352-attachment.json b/report/tmp/1315df09-7668-46d3-9204-ebb7170e7352-attachment.json deleted file mode 100644 index cfd64e9..0000000 --- a/report/tmp/1315df09-7668-46d3-9204-ebb7170e7352-attachment.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "code": { - "jsonpath": "$.status", - "type": "==", - "value": 200, - "AssertType": null - } -} \ No newline at end of file diff --git a/report/tmp/19d2118d-eb6d-45b9-a4cd-3d61dfc59101-attachment.json b/report/tmp/19d2118d-eb6d-45b9-a4cd-3d61dfc59101-attachment.json deleted file mode 100644 index ef72c73..0000000 --- a/report/tmp/19d2118d-eb6d-45b9-a4cd-3d61dfc59101-attachment.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "requestType": "params", - "bid": "blog-121903028" -} \ No newline at end of file diff --git a/report/tmp/5971f4c5-5177-46f8-b164-a216d86c3c2d-attachment.txt b/report/tmp/5971f4c5-5177-46f8-b164-a216d86c3c2d-attachment.txt deleted file mode 100644 index 25fe743..0000000 --- a/report/tmp/5971f4c5-5177-46f8-b164-a216d86c3c2d-attachment.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/report/tmp/8c753509-eb3f-44e6-bb47-6204dc93c581-container.json b/report/tmp/8c753509-eb3f-44e6-bb47-6204dc93c581-container.json deleted file mode 100644 index 80c7699..0000000 --- a/report/tmp/8c753509-eb3f-44e6-bb47-6204dc93c581-container.json +++ /dev/null @@ -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} \ No newline at end of file diff --git a/report/tmp/934fdad3-a23b-4d27-bfc0-3d8b9fe2f82b-attachment.json b/report/tmp/934fdad3-a23b-4d27-bfc0-3d8b9fe2f82b-attachment.json deleted file mode 100644 index ab82c9d..0000000 --- a/report/tmp/934fdad3-a23b-4d27-bfc0-3d8b9fe2f82b-attachment.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "status": 200, - "msg": "查询成功", - "content": [ - "pytest", - "gitee", - "yaml", - "api", - "jenkins", - "sdn" - ], - "error": false -} \ No newline at end of file diff --git a/report/tmp/a6992401-f4a4-4bed-a47f-99a2d05bb31d-attachment.json b/report/tmp/a6992401-f4a4-4bed-a47f-99a2d05bb31d-attachment.json deleted file mode 100644 index ffe5bbf..0000000 --- a/report/tmp/a6992401-f4a4-4bed-a47f-99a2d05bb31d-attachment.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Content-Type": "application/json;charset=UTF-8" -} \ No newline at end of file diff --git a/report/tmp/af4a859e-cec1-4cdc-bb8d-7a28e46f5023-container.json b/report/tmp/af4a859e-cec1-4cdc-bb8d-7a28e46f5023-container.json deleted file mode 100644 index 6814663..0000000 --- a/report/tmp/af4a859e-cec1-4cdc-bb8d-7a28e46f5023-container.json +++ /dev/null @@ -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} \ No newline at end of file diff --git a/report/tmp/b35aa937-e37f-47ce-b326-534b6184e5ab-result.json b/report/tmp/b35aa937-e37f-47ce-b326-534b6184e5ab-result.json deleted file mode 100644 index f8c87c9..0000000 --- a/report/tmp/b35aa937-e37f-47ce-b326-534b6184e5ab-result.json +++ /dev/null @@ -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"}]} \ No newline at end of file diff --git a/report/tmp/c2925e0d-827d-4a92-952f-d5b660c103a0-container.json b/report/tmp/c2925e0d-827d-4a92-952f-d5b660c103a0-container.json deleted file mode 100644 index 32047d0..0000000 --- a/report/tmp/c2925e0d-827d-4a92-952f-d5b660c103a0-container.json +++ /dev/null @@ -1 +0,0 @@ -{"uuid": "208d7ac7-9271-4ac7-970d-e2dafe45dbca", "befores": [{"name": "inData", "status": "passed", "start": 1641364883651, "stop": 1641364883651}], "start": 1641364883651, "stop": 1641364883812} \ No newline at end of file diff --git a/test_case/__pycache__/conftest.cpython-38-pytest-6.2.5.pyc b/test_case/__pycache__/conftest.cpython-38-pytest-6.2.5.pyc index 4796ba2f4d29bb9b19faf76f961b67adf6619a1d..f62588c06c6825e665bc80a0fbaa28f00f2deec0 100644 GIT binary patch delta 876 zcma))O-NKx6vyv*U-RZU^XB_gEgkb?oQT5IO+@0@B65@*i-tmkJBnf{&o>bD28$8G zOhS%s(rBcOv}rN65nHrr9Yh2JZ9;2yee8?w9Zgz#5BK-Z``^QP|9g1fTG!h2VW(3g zY|W%Uj>ZDZdL8^(POOgyv-ZhQ0gB-bLbV9VM6=3dEv=yr>Rb}2PF?e)0GYaM{lB2@ zb(wmocV5aIJJfvZ67|yn(~i?14b78G0}ay%dp1%SBJn8JL0-FjK21vUVD*d>n6 z1(=^+wr6iJP%z0Fp+c3S2`rZ^nNha5u2@{LSpuVKiHvqjV$@8bz|U)*1@ek17RaPT z9hO3!<3RN#5eOyBfGc%ZZept;*Tz0odH8bg(dHg{q!`rWS*bzJd6-rIcOdiwjy+DN)@2tUZvp+@f2!9c{Mtbo8m`fW7hb*23rA8z$7?JS{CBqo@G zC0WD*ORz-lY(ve|)YVpR?ES(K95K+fs3Xn$7t)`PqG){5wRz~O$VV-p`3}aCrI6~c3^tw_xU+6DzOT;<= delta 867 zcma))T}V_x6vyYxoqPA*yI=0Qtsl9$ex$2QMur+alwcAhsc74SFDZ^nS^yX89s~ZSW&qd9s*{gGy-^`r*zi0l#%tU0Z+!J%V zO(a_I{im+Qz?i21*2kjBnAVq1P3okso0z((XBZ`*V|RDKzo6cvO0%eMm~@1;bN(cu z*)$+>d+07297Y|5G>7JjF-)NyRpjw1h^OWu3E<~#O4ntd*tbFS!BznZHkv>bGgVMw za!wcsstgNiOc8W2BBJm8zCRui$X>Dsc(b&L$ zsr@-&>Cq*CltZcpSOocPmGY}v#But%x zEpNDa=oZgtqoE_K^P`!WyP3I%nYqU+3k%=hj@NIS;a?oZe8wo|OOE6CK%6%@BD`KN z=RrNn@8|*TV0`8EbSEFsOZbwW&7bNKZWg8i`7YQi(GD!gov@ z@P{u7O+4g3smV*KC`t|Z^P#$2O5}xEMFPu?p5BZ0kkxJF$(7Q3!QLt&6&p1h_+oZh jb(L7_$d7c;!39~OZv_r2E->BVX(0T^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" ![screenshot](https://img.alicdn.com/tfs/TB1NwmBEL9TBuNjy1zbXXXpepXa-2400-1218.png)\n" \ f" > ###### 测试报告 [详情](http://{get_host_ip()}:9999/index.html) \n" @@ -49,19 +50,19 @@ def sendEmailNotification(passNum: int, failNum: int, # 发送企业微信通知 text = """【{0}自动化通知】 >测试环境:TEST - >测试负责人:@余少琪 + f>测试负责人:@{1} > > **执行结果** - >{1} - >成功用例数:{2} - >失败用例数:`{3}个` - >异常用例数:`{4}个` - >跳过用例数:{5}个 - >时 间:{6} + >{2} + >成功用例数:{3} + >失败用例数:`{4}个` + >异常用例数:`{5}个` + >跳过用例数:{6}个 + >时 间:{7} > >非相关负责人员可忽略此消息。 >测试报告,点击查看>>[测试报告入口](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) diff --git a/tools/testcaseAutomaticControl.py b/tools/testcaseAutomaticControl.py index 0f40ab6..460e6c2 100644 --- a/tools/testcaseAutomaticControl.py +++ b/tools/testcaseAutomaticControl.py @@ -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