Commit 7c17ab53 authored by 邓莹莹's avatar 邓莹莹

Merge branch 'common_dev' into 'master'

Common dev

See merge request !7
parents af08e9b0 37c99e71
...@@ -17,4 +17,5 @@ class account_request(BaseRequest): ...@@ -17,4 +17,5 @@ class account_request(BaseRequest):
if __name__ == '__main__': if __name__ == '__main__':
print(account_request().login_vfc("beijing", "+8612345678912", 1234, "", "")) # print(account_request().user_info())
\ No newline at end of file print(account_request.loginvfc(""))
\ No newline at end of file
...@@ -9,3 +9,5 @@ login_vfc: ...@@ -9,3 +9,5 @@ login_vfc:
vfc_type: ${vfc_type} vfc_type: ${vfc_type}
face_token: ${face_token} face_token: ${face_token}
json: {} json: {}
...@@ -7,3 +7,4 @@ index_v9: ...@@ -7,3 +7,4 @@ index_v9:
current_city_id: ${current_city_id} current_city_id: ${current_city_id}
data: data:
json: {} json: {}
isLogin: 1
...@@ -7,9 +7,18 @@ class hospitals_request(BaseRequest): ...@@ -7,9 +7,18 @@ class hospitals_request(BaseRequest):
def __init__(self): def __init__(self):
self.data = self.api_load(path_setting.HDYAML_CONFIG) self.data = self.api_load(path_setting.HDYAML_CONFIG)
#医院主页详情
def detail(self): def detail(self):
return self.api_send(self.data["detail"]) return self.api_send(self.data["detail"])
#医院主页医生列表
def doctor(self):
return self.api_send(self.data["doctor"])
if __name__ == '__main__': if __name__ == '__main__':
#打印医院主页详情接口返回
print(hospitals_request().detail()) print(hospitals_request().detail())
#打印医院主页医生列表接口返回
print(hospitals_request().doctor())
\ No newline at end of file
#详情
detail: detail:
method: get method: get
url: /api/hospitals/bjxyjcpfbyy/detail url: /api/hospitals/bjxyjcpfbyy/detail
params: {} params: {}
data: {}
json: {}
#医生列表
doctor:
method: get
url: /api/hospitals/bjxyjcpfbyy/doctors
params:
related: 0
data: {} data: {}
json: {} json: {}
\ No newline at end of file
develop_host: develop_host:
url: http://backend.paas-develop.env backend: http://backend.paas-develop.env
# url: http://doctor.paas-develop.env/ # doctor: http://doctor.paas-develop.env/
...@@ -4,6 +4,7 @@ import string ...@@ -4,6 +4,7 @@ import string
import requests import requests
import yaml import yaml
from jsonpath import jsonpath from jsonpath import jsonpath
from login_session_function import LoginFunction
# from pymysql import OperationalError # from pymysql import OperationalError
import path_setting import path_setting
...@@ -33,7 +34,7 @@ class BaseRequest: ...@@ -33,7 +34,7 @@ class BaseRequest:
if r is None: if r is None:
r = self.r.json() r = self.r.json()
return jsonpath(r, path) return jsonpath(r, path)
'''
def get_cookie(self, req: dict): def get_cookie(self, req: dict):
host = self.api_load(path_setting.HOSTYAML_CONFIG) host = self.api_load(path_setting.HOSTYAML_CONFIG)
...@@ -50,15 +51,6 @@ class BaseRequest: ...@@ -50,15 +51,6 @@ class BaseRequest:
for i in r.cookies: for i in r.cookies:
dict[i.name] = i.value dict[i.name] = i.value
headers = '_gtid={};sessionid={}'.format(dict["_gtid"], dict["sessionid"]) headers = '_gtid={};sessionid={}'.format(dict["_gtid"], dict["sessionid"])
# item = r.cookies.values()
# print("ppppppp",item)
# if len(item) == 1:
# headers = '_gtid={}'.format(item[0])
# print("cookie异常")
#
# else:
# headers = '_gtid={};sessionid={}'.format(item[0], item[1])
#
return headers return headers
def read_header(self): def read_header(self):
...@@ -66,27 +58,24 @@ class BaseRequest: ...@@ -66,27 +58,24 @@ class BaseRequest:
cookies = f.read() cookies = f.read()
headers = {"cookie": cookies} headers = {"cookie": cookies}
return headers return headers
'''
# 接口请求的封装
def api_send(self, req: dict): def api_send(self, req: dict):
host = self.api_load(path_setting.HOSTYAML_CONFIG) host = self.api_load(path_setting.HOSTYAML_CONFIG)
raw = yaml.dump(req) # 将一个python对象生成为yaml文档 raw = yaml.dump(req) # 将一个python对象生成为yaml文档
for key, value in self.params.items(): for key, value in self.params.items():
raw = raw.replace(f"${{{key}}}", repr(value)) raw = raw.replace(f"${{{key}}}", repr(value))
req = yaml.safe_load(raw) req = yaml.safe_load(raw)
print('req:',req) print('req:', req)
# print('------', req.get('headers'))
# hd = req.get('headers') s = requests
# if hd == None: if req.get('isLogin'):
# user_headers = self.read_header() s = LoginFunction().get_session()
# elif hd["Cookie"]:
# user_headers = req.get('headers') # 调用具体case的url
# else: r = s.request(
# user_headers = self.read_header()
r = requests.request(
req['method'], req['method'],
url=host['develop_host']['url'] + req['url'], url=host['develop_host']['backend'] + req['url'],
params=req.get('params'), params=req.get('params'),
# headers=user_headers, # headers=user_headers,
data=req.get('data'), data=req.get('data'),
...@@ -99,7 +88,7 @@ class BaseRequest: ...@@ -99,7 +88,7 @@ class BaseRequest:
return ''.join(random.sample(string.ascii_lowercase + string.digits, 32)) return ''.join(random.sample(string.ascii_lowercase + string.digits, 32))
if __name__ == '__main__': if __name__ == '__main__':
BaseRequest().api_load("../api/api.yaml") # BaseRequest().api_load("../api/api.yaml")
# print(BaseApi().trace_id()) # print(BaseApi().trace_id())
BaseRequest().read_header() BaseRequest().a()
import path_setting
import requests
import yaml
"""
此文件是封装session的
"""
class LoginFunction:
def __init__(self):
self.host = self.login_yaml_load(path_setting.HOSTYAML_CONFIG)
self.params = self.login_yaml_load(path_setting.LOGIN_FUNCTION_DATA)
def login_yaml_load(self, path) -> list:
with open(path, encoding='utf-8') as f:
return yaml.safe_load(f)
def get_session(self):
hostList = self.host['develop_host']
for key in hostList:
if 'backend' == key:
return self.get_develop_session()
elif 'doctor' == key:
return self.get_doctor_session()
def get_develop_session(self):
url = self.host["develop_host"]["backend"] + self.params["backend_login"]["url"]
s = requests.session()
r = s.request(
self.params["backend_login"]["method"],
url=url,
params=self.params["backend_login"]["params"],
data=self.params["backend_login"]["data"],
headers={'Connection': 'close'}
)
return s
def get_doctor_session(self):
pass
if __name__ == '__main__':
LoginFunction().get_session()
\ No newline at end of file
backend_login:
method: POST
url: /api/account/login/login_vfc
params:
current_city_id: "beijing"
data:
phone_num: "+8612345678912"
vfc_code: 1234
vfc_type:
face_token:
#doctor_login:
# method: post
# url: /api
# params:
# a: "a"
# data:
# b: "b"
...@@ -4,6 +4,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__)) ...@@ -4,6 +4,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR) sys.path.append(BASE_DIR)
HOSTYAML_CONFIG = os.path.join(BASE_DIR, "backend_auto", "host.yaml") HOSTYAML_CONFIG = os.path.join(BASE_DIR, "backend_auto", "host.yaml")
LOGIN_FUNCTION_DATA = os.path.join(BASE_DIR, "backend_auto", "login_session_function.yaml")
APYAML_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "account_request.yaml") APYAML_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "account_request.yaml")
LOGIN_VFC = os.path.join(BASE_DIR, "backend_auto/test_backend_data/account_data", "login_vfc.yaml") LOGIN_VFC = os.path.join(BASE_DIR, "backend_auto/test_backend_data/account_data", "login_vfc.yaml")
...@@ -28,6 +29,8 @@ LOGIN_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "accounts_ ...@@ -28,6 +29,8 @@ LOGIN_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "accounts_
#医院主页详情 #医院主页详情
HDYAML_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "hospitals_request.yaml") HDYAML_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "hospitals_request.yaml")
HOSPITAL_DETAIL = os.path.join(BASE_DIR, "backend_auto/test_backend_data/hospitals_data", "detail.yaml") HOSPITAL_DETAIL = os.path.join(BASE_DIR, "backend_auto/test_backend_data/hospitals_data", "detail.yaml")
#医院主页医生列表
HOSPITAL_DOCTOR = os.path.join(BASE_DIR, "backend_auto/test_backend_data/hospitals_data", "doctor.yaml")
HOME_V5_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "service_request.yaml") HOME_V5_CONFIG = os.path.join(BASE_DIR, "backend_auto/all_backend_api", "service_request.yaml")
......
import pytest
import path_setting
@pytest.fixture()
def login():
self.data = self.api_load(path_setting.APYAML_CONFIG)
import pytest
from all_backend_api.hospitals_request import hospitals_request
from ids_list import get_ids
import path_setting
from in_common.base_request import BaseRequest
class TestDoctor:
data = BaseRequest().api_load(path_setting.HOSPITAL_DOCTOR)
doctor_case, doctor_data = get_ids(data, "doctor")
@pytest.mark.parametrize("param", doctor_data, ids=doctor_case)
def test_doctor(self, param):
r = hospitals_request().doctor()
assert r["error"] == param["assert_error"]
assert r["data"][0]["id"] == param["assert_id"]
assert r["data"][0]["doctor_name"] == param["assert_name"]
assert r["data"][0]["good_at"][0] == param["assert_good_at"]
assert r["data"][0]["cases"][0]["name"] == param["assert_cases"]
assert r["data"][0]["title"] == param["assert_title"]
doctor:
-
case: "校验接口返回成功case"
assert_error: 0
assert_id: "ad99d0b0b6eb4a2c97ffadad48b7cdfd"
assert_name: "赵希军"
assert_good_at: "吸脂瘦身"
assert_cases: "自体脂肪填充面部 80例"
assert_title: "副主任"
-
case: "校验医生id case"
assert_error: 0
assert_id: "ad99d0b0b6eb4a2c97ffadad48b7cdfd"
assert_name: "赵希军"
assert_good_at: "吸脂瘦身"
assert_cases: "自体脂肪填充面部 80例"
assert_title: "副主任"
-
case: "校验医生名称case"
assert_error: 0
assert_id: "ad99d0b0b6eb4a2c97ffadad48b7cdfd"
assert_name: "赵希军"
assert_good_at: "吸脂瘦身"
assert_cases: "自体脂肪填充面部 80例"
assert_title: "副主任"
-
case: "校验医生明星项目case"
assert_error: 0
assert_id: "ad99d0b0b6eb4a2c97ffadad48b7cdfd"
assert_name: "赵希军"
assert_good_at: "吸脂瘦身"
assert_cases: "自体脂肪填充面部 80例"
assert_title: "副主任"
-
case: "校验医生案例case"
assert_error: 0
assert_id: "ad99d0b0b6eb4a2c97ffadad48b7cdfd"
assert_name: "赵希军"
assert_good_at: "吸脂瘦身"
assert_cases: "自体脂肪填充面部 80例"
assert_title: "副主任"
-
case: "校验医生title case"
assert_error: 0
assert_id: "ad99d0b0b6eb4a2c97ffadad48b7cdfd"
assert_name: "赵希军"
assert_good_at: "吸脂瘦身"
assert_cases: "自体脂肪填充面部 80例"
assert_title: "副主任"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment