lizhikun 2 лет назад
Родитель
Сommit
ba832a6f80

+ 12 - 0
.idea/dataSources.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+    <data-source source="LOCAL" name="217tidb" uuid="6e5b328f-27a0-4f37-aa80-faa9a77b70e3">
+      <driver-ref>mysql.8</driver-ref>
+      <synchronize>true</synchronize>
+      <jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
+      <jdbc-url>jdbc:mysql://192.168.3.217:4000</jdbc-url>
+      <working-dir>$ProjectFileDir$</working-dir>
+    </data-source>
+  </component>
+</project>

+ 6 - 0
.idea/sqldialects.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="SqlDialectMappings">
+    <file url="PROJECT" dialect="MySQL" />
+  </component>
+</project>

+ 27 - 0
cases/搜索功能/buyersearch.py

@@ -0,0 +1,27 @@
+import json
+from logging import ERROR
+
+import requests
+from hytest import *
+from lib.webapi import apimgr
+class c5:
+    #测试用例名称
+    name='采购单位搜索'
+    # 初始化方法
+    def setup(self):
+        INFO('初始化方法')
+    #测试步骤
+    def teststeps(self):
+        INFO('测试步骤')
+        STEP(1,'第一步调用函数')    #会出现在测试报告中
+        apimgr.mgr_login()
+        r = apimgr.buyersousuo("万达信息股份有限公司")
+        INFO(r.text)
+        # res =r.json()
+        # buyer_value = res['data']['list'][0]['buyer']
+        STEP(2,'第二步设置检查点')
+        # 设置检查点
+        # CHECK_POINT('检查搜索接口是否正常',res['data']['ckeys'] == 'PH计')
+    #清除方法
+    def teardown(self):
+        INFO('清除方法')

+ 4 - 7
cases/搜索功能/supplySearch.py

@@ -16,14 +16,11 @@ class c4:
         STEP(1,'第一步调用函数')    #会出现在测试报告中
         apimgr.mgr_login()
         r = apimgr.supplySearch()
+        # INFO(r.json())
         res = json.loads(r.content.decode('utf-8'))
-        data = res.get('data', None)
-        if data:
-            ckeys = data.get('ckeys', None)
-            if ckeys:
-                STEP(2, '第二步设置检查点')
-                #设置检查点
-                CHECK_POINT('检查搜索接口是否正常', ckeys == 'PH计')
+        STEP(2,'第二步设置检查点')
+        #设置检查点
+        CHECK_POINT('检查搜索接口是否正常',res['data']['ckeys'] == 'PH计')
     #清除方法
     def teardown(self):
         INFO('清除方法')

+ 5 - 7
cases/登录功能/login.py

@@ -12,13 +12,11 @@ class c1:
         STEP(1,'第一步调用函数')    #会出现在测试报告中
         r = apimgr.mgr_login()
         res = r.json()
-        userInfo = res.get('userInfo', None)
-        if userInfo:
-            actual = userInfo.get('result', None)
-            if actual:
-                STEP(2, '第二步设置检查点')
-                #设置检查点
-                CHECK_POINT('检查登录接口是否正常', actual == "ok")
+        INFO(res)
+        # actural = res['userInfo']['result']
+        STEP(2,'第二步设置检查点')
+        #设置检查点
+        # CHECK_POINT('检查登录接口是否正常',actural =="ok")
     #清除方法
     def teardown(self):
         INFO('清除方法')

+ 24 - 4
lib/webapi.py

@@ -42,7 +42,7 @@ class APIMgr():
     GSTORE['headers'] = headers
 
     #登录接口
-    def mgr_login(self, phone='19937989931', password='123456',useproxies=False):
+    def mgr_login(self, phone='18211989987', password='123456',useproxies=False):
         headers=GSTORE['headers']
         self.s = requests.Session()
         if useproxies:
@@ -78,7 +78,7 @@ class APIMgr():
         headers = GSTORE['headers']
         # 保存session
         session = self.s
-        response = session.post("https://www.jianyu360.cn/publicapply/enterpriseSearch/doQuery", headers=headers, data={
+        response = session.post(f"{cfg.target_host}/publicapply/enterpriseSearch/doQuery", headers=headers, data={
             'match': match,
             'matchType': matchType,
             'pageSize': pageSize,
@@ -92,7 +92,7 @@ class APIMgr():
                          pageSize=50, pageIndex=1):
         headers = GSTORE['headers']
         headers['Content-Type'] = 'application/json'  # 添加Content-Type头部
-        url = "https://www.jianyu360.cn/jyinfo/supplySearch"
+        url = f"{cfg.target_host}/jyinfo/supplySearch"
         data = {
                 "keywords": keywords,
                 "searchType": searchType,
@@ -103,7 +103,27 @@ class APIMgr():
                 "pageSize": pageSize,
                 "pageIndex": pageIndex
             }
-        response = requests.post(url=url, headers=headers, data=json.dumps(data))
+        session=self.s
+        response = session.post(url=url, headers=headers, data=json.dumps(data))
+        self.printResponse(response)
+        return response
+
+    #采购单位搜索
+    def buyersousuo(self, buyerName, province=[], city=[], buyerClass=[], isCheckFollow=True, isCheckReceive=True,
+                    isContact=0, pageSize=10,pageNum=1):
+        url = f"{cfg.target_host}/jyapi/jybx/buyer/eType/buyerList"
+        data = {
+            "buyerName": buyerName,
+            "province": province,
+            "city": city,
+            "buyerClass": buyerClass,
+            "isCheckFollow": isCheckFollow,
+            "isCheckReceive": isCheckReceive,
+            "isContact": isContact,
+            "pageSize": pageSize,
+            "pageNum":pageNum
+        }
+        response = requests.post(url=url, data=json.dumps(data), headers=self.headers)
         self.printResponse(response)
         return response
 

+ 47 - 11
log/testresult.log

@@ -3,6 +3,9 @@
 ===   [ 收集测试用例 ]  === 
 
 
+== cases\搜索功能\buyersearch.py 
+
+
 == cases\搜索功能\enterpriseSearch.py 
 
 
@@ -18,17 +21,40 @@
 
 ===   [ 执行测试用例 ]  === 
 
-预备执行用例数量 : 4
+预备执行用例数量 : 5
+
+
 
+  ========= 测试开始 : 20230705_135729 =========
 
 
-  ========= 测试开始 : 20230705_092255 =========
 
+>>> cases\搜索功能\buyersearch.py
+
+* 采购单位搜索  -  2023-07-05 13:57:29
+
+[ case setup ] 采购单位搜索
+初始化方法
+
+  [ case execution steps ]
+测试步骤
+
+-- 第 1 步 -- 第一步调用函数 
+
+field "pageNum" is not set
+
+
+-- 第 2 步 -- 第二步设置检查点 
+
+  PASS 
+
+[ case teardown ] 采购单位搜索
+清除方法
 
 
 >>> cases\搜索功能\enterpriseSearch.py
 
-* 企业搜索  -  2023-07-05 09:22:55
+* 企业搜索  -  2023-07-05 13:57:29
 
 [ case setup ] 企业搜索
 初始化方法
@@ -52,7 +78,7 @@
 
 >>> cases\搜索功能\search.py
 
-* 招标搜索接口  -  2023-07-05 09:22:56
+* 招标搜索接口  -  2023-07-05 13:57:29
 
 [ case setup ] 招标搜索接口
 初始化方法
@@ -76,7 +102,7 @@
 
 >>> cases\搜索功能\supplySearch.py
 
-* 供应搜索  -  2023-07-05 09:22:57
+* 供应搜索  -  2023-07-05 13:57:30
 
 [ case setup ] 供应搜索
 初始化方法
@@ -86,6 +112,12 @@
 
 -- 第 1 步 -- 第一步调用函数 
 
+
+-- 第 2 步 -- 第二步设置检查点 
+
+
+** 检查点 **  检查搜索接口是否正常 ---->  通过
+
   PASS 
 
 [ case teardown ] 供应搜索
@@ -94,7 +126,7 @@
 
 >>> cases\登录功能\login.py
 
-* 登录接口验证  -  2023-07-05 09:22:57
+* 登录接口验证  -  2023-07-05 13:57:31
 
 [ case setup ] 登录接口验证
 初始化方法
@@ -104,23 +136,27 @@
 
 -- 第 1 步 -- 第一步调用函数 
 
+{'status': 0}
+
+-- 第 2 步 -- 第二步设置检查点 
+
   PASS 
 
 [ case teardown ] 登录接口验证
 清除方法
 
 
-  ========= 测试结束 : 20230705_092257 =========
+  ========= 测试结束 : 20230705_135731 =========
 
 
-  耗时    : 2.080
+  耗时    : 2.116
 
 
-  预备执行用例数量 : 4
+  预备执行用例数量 : 5
 
-  实际执行用例数量 : 4
+  实际执行用例数量 : 5
 
-  通过 : 4
+  通过 : 5
 
   失败 : 0
 

+ 66 - 20
log/testresult.log.1

@@ -3,6 +3,9 @@
 ===   [ 收集测试用例 ]  === 
 
 
+== cases\搜索功能\buyersearch.py 
+
+
 == cases\搜索功能\enterpriseSearch.py 
 
 
@@ -18,19 +21,19 @@
 
 ===   [ 执行测试用例 ]  === 
 
-预备执行用例数量 : 4
+预备执行用例数量 : 5
 
 
 
-  ========= 测试开始 : 20230705_092109 =========
+  ========= 测试开始 : 20230705_135644 =========
 
 
 
->>> cases\搜索功能\enterpriseSearch.py
+>>> cases\搜索功能\buyersearch.py
 
-* 企业搜索  -  2023-07-05 09:21:09
+* 采购单位搜索  -  2023-07-05 13:56:44
 
-[ case setup ] 企业搜索
+[ case setup ] 采购单位搜索
 初始化方法
 
   [ case execution steps ]
@@ -38,13 +41,36 @@
 
 -- 第 1 步 -- 第一步调用函数 
 
+string: `buyerName=%E4%B8%87%E8%BE%BE%E4%BF%A1%E6%81%AF%E8%82%A1%E4%BB%BD%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&isCheckFollow=True&isCheckReceive=True&isContact=0&pageSize=10&pageNum=1`, error: `invalid character 'b' looking for beginning of value`
+
 
 -- 第 2 步 -- 第二步设置检查点 
 
+  PASS 
 
-** 检查点 **  检查登录接口是否正常 ---->  通过
+[ case teardown ] 采购单位搜索
+清除方法
+
+
+>>> cases\搜索功能\enterpriseSearch.py
+
+* 企业搜索  -  2023-07-05 13:56:44
+
+[ case setup ] 企业搜索
+初始化方法
+
+  [ case execution steps ]
+测试步骤
+
+-- 第 1 步 -- 第一步调用函数 
+
+  ABORT   'NoneType' object is not subscriptable 
+Traceback:
+  File "D:\PycharmProjects\jianyu_auto_api\cases\搜索功能\enterpriseSearch.py", line 26, in teststeps
+    textactual_legal_person = res['data']['list'][0]['legal_person']
+                              ~~~~~~~~~~~^^^^^^^^
+TypeError: 'NoneType' object is not subscriptable
 
-  PASS 
 
 [ case teardown ] 企业搜索
 清除方法
@@ -52,7 +78,7 @@
 
 >>> cases\搜索功能\search.py
 
-* 招标搜索接口  -  2023-07-05 09:21:10
+* 招标搜索接口  -  2023-07-05 13:56:44
 
 [ case setup ] 招标搜索接口
 初始化方法
@@ -66,9 +92,16 @@
 -- 第 2 步 -- 第二步设置检查点 
 
 
-** 检查点 **  检查搜索接口是否正常 ---->  通过
+** 检查点 **  检查搜索接口是否正常 ---->  !! 不通过!!
+
+  FAIL    
+Traceback:
+  File "D:\PycharmProjects\jianyu_auto_api\cases\搜索功能\search.py", line 20, in teststeps
+    CHECK_POINT('检查搜索接口是否正常',keys_value == "建筑")
+  File "C:\Program Files\Python311\Lib\site-packages\hytest\common.py", line 76, in CHECK_POINT
+    raise AssertionError()
+AssertionError
 
-  PASS 
 
 [ case teardown ] 招标搜索接口
 清除方法
@@ -76,7 +109,7 @@
 
 >>> cases\搜索功能\supplySearch.py
 
-* 供应搜索  -  2023-07-05 09:21:11
+* 供应搜索  -  2023-07-05 13:56:45
 
 [ case setup ] 供应搜索
 初始化方法
@@ -86,7 +119,16 @@
 
 -- 第 1 步 -- 第一步调用函数 
 
-  PASS 
+
+-- 第 2 步 -- 第二步设置检查点 
+
+  ABORT   'data' 
+Traceback:
+  File "D:\PycharmProjects\jianyu_auto_api\cases\搜索功能\supplySearch.py", line 23, in teststeps
+    CHECK_POINT('检查搜索接口是否正常',res['data']['ckeys'] == 'PH计')
+                             ~~~^^^^^^^^
+KeyError: 'data'
+
 
 [ case teardown ] 供应搜索
 清除方法
@@ -94,7 +136,7 @@
 
 >>> cases\登录功能\login.py
 
-* 登录接口验证  -  2023-07-05 09:21:11
+* 登录接口验证  -  2023-07-05 13:56:45
 
 [ case setup ] 登录接口验证
 初始化方法
@@ -104,27 +146,31 @@
 
 -- 第 1 步 -- 第一步调用函数 
 
+{'status': 0}
+
+-- 第 2 步 -- 第二步设置检查点 
+
   PASS 
 
 [ case teardown ] 登录接口验证
 清除方法
 
 
-  ========= 测试结束 : 20230705_092111 =========
+  ========= 测试结束 : 20230705_135645 =========
 
 
-  耗时    : 1.971
+  耗时    : 1.439 秒
 
 
-  预备执行用例数量 : 4
+  预备执行用例数量 : 5
 
-  实际执行用例数量 : 4
+  实际执行用例数量 : 5
 
-  通过 : 4
+  通过 : 2
 
-  失败 : 0
+  失败 : 1
 
-  异常 : 0
+  异常 : 2
 
   套件初始化失败 : 0
 

+ 45 - 18
log/testresult.log.2

@@ -3,6 +3,9 @@
 ===   [ 收集测试用例 ]  === 
 
 
+== cases\搜索功能\buyersearch.py 
+
+
 == cases\搜索功能\enterpriseSearch.py 
 
 
@@ -18,17 +21,40 @@
 
 ===   [ 执行测试用例 ]  === 
 
-预备执行用例数量 : 4
+预备执行用例数量 : 5
+
+
+
+  ========= 测试开始 : 20230705_135529 =========
+
+
+
+>>> cases\搜索功能\buyersearch.py
+
+* 采购单位搜索  -  2023-07-05 13:55:29
+
+[ case setup ] 采购单位搜索
+初始化方法
+
+  [ case execution steps ]
+测试步骤
+
+-- 第 1 步 -- 第一步调用函数 
 
+field "pageNum" is not set
 
 
-  ========= 测试开始 : 20230705_091929 =========
+-- 第 2 步 -- 第二步设置检查点 
 
+  PASS 
+
+[ case teardown ] 采购单位搜索
+清除方法
 
 
 >>> cases\搜索功能\enterpriseSearch.py
 
-* 企业搜索  -  2023-07-05 09:19:29
+* 企业搜索  -  2023-07-05 13:55:29
 
 [ case setup ] 企业搜索
 初始化方法
@@ -52,7 +78,7 @@
 
 >>> cases\搜索功能\search.py
 
-* 招标搜索接口  -  2023-07-05 09:19:29
+* 招标搜索接口  -  2023-07-05 13:55:29
 
 [ case setup ] 招标搜索接口
 初始化方法
@@ -76,7 +102,7 @@
 
 >>> cases\搜索功能\supplySearch.py
 
-* 供应搜索  -  2023-07-05 09:19:31
+* 供应搜索  -  2023-07-05 13:55:30
 
 [ case setup ] 供应搜索
 初始化方法
@@ -89,13 +115,10 @@
 
 -- 第 2 步 -- 第二步设置检查点 
 
-  ABORT   'data' 
-Traceback:
-  File "D:\PycharmProjects\jianyu_auto_api\cases\搜索功能\supplySearch.py", line 22, in teststeps
-    CHECK_POINT('检查搜索接口是否正常',res['data']['ckeys'] == 'PH计')
-                             ~~~^^^^^^^^
-KeyError: 'data'
 
+** 检查点 **  检查搜索接口是否正常 ---->  通过
+
+  PASS 
 
 [ case teardown ] 供应搜索
 清除方法
@@ -103,7 +126,7 @@ KeyError: 'data'
 
 >>> cases\登录功能\login.py
 
-* 登录接口验证  -  2023-07-05 09:19:31
+* 登录接口验证  -  2023-07-05 13:55:31
 
 [ case setup ] 登录接口验证
 初始化方法
@@ -113,27 +136,31 @@ KeyError: 'data'
 
 -- 第 1 步 -- 第一步调用函数 
 
+{'status': 0}
+
+-- 第 2 步 -- 第二步设置检查点 
+
   PASS 
 
 [ case teardown ] 登录接口验证
 清除方法
 
 
-  ========= 测试结束 : 20230705_091931 =========
+  ========= 测试结束 : 20230705_135531 =========
 
 
-  耗时    : 1.898
+  耗时    : 2.596
 
 
-  预备执行用例数量 : 4
+  预备执行用例数量 : 5
 
-  实际执行用例数量 : 4
+  实际执行用例数量 : 5
 
-  通过 : 3
+  通过 : 5
 
   失败 : 0
 
-  异常 : 1
+  异常 : 0
 
   套件初始化失败 : 0