Commit d543c45a authored by liguangyu06's avatar liguangyu06
Browse files

1、封装图形验证码识别

2、封装移动端和后台管理系统登录
3、提交快速下单接口用例
4、提交获取需求单相关接口用例
parent 65aaa304
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc站点不满足快速下单,sit,bs
主数据平台:多彩商城快速下单权限判定接口
"""
from common.common_func import commonFuc
import requests
import json
module = "cmdc-qos"
url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
print(url)
# url = "https://service-slb.cmic.com.cn/cms/public/isQuickOrderSign"
# 获取公司ID
companyId = commonFuc().get_business_data(module, "companyId2")
print(companyId)
request_body = commonFuc().get_business_data(module, "payload", companyId)
print(request_body)
"""
场景:站点不具有快速下单权限入口
用例名称:快速下单权限判定接口-站点不满足条件显示快速下单入口
输入:companyId
输出:"quickOrderSign": 0
"""
# 发送请求
result = requests.get(url, params=request_body)
result = json.loads(result.text)
print(result)
# 获取预期结果
check_dict = commonFuc().get_business_data(module, "checkDict2")
print(check_dict)
# 断言实际结果中是否包含预期结果的内容
commonFuc().check_result(check_dict, result)
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc站点满足快速下单,sit,bs
主数据平台:多彩商城快速下单权限判定接口
"""
from common.common_func import commonFuc
import requests
import json
module = "cmdc-qos"
url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
print(url)
# url = "https://service-slb.cmic.com.cn/cms/public/isQuickOrderSign"
# 获取公司ID
companyId = commonFuc().get_business_data(module, "companyId1")
print(companyId)
request_body = commonFuc().get_business_data(module, "payload", companyId)
print(request_body)
"""
场景:站点拥有快速下单权限入口
用例名称:快速下单权限判定接口-站点满足条件显示快速下单入口
输入:companyId
输出:"quickOrderSign": 1
"""
# 发送请求
result = requests.get(url, params=request_body)
result = json.loads(result.text)
print(result)
# 获取预期结果
check_dict = commonFuc().get_business_data(module, "checkDict1")
print(check_dict)
# 断言实际结果中是否包含预期结果的内容
commonFuc().check_result(check_dict, result)
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc获取需求单列表,sit,bs
主数据平台:运营后台管理系统需求单列表接口
"""
from common.common_func import commonFuc
from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
import requests
import json
module = "cmdc_demand_list"
url123 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
print(url123)
# 获取登录所需账号密码
username = commonFuc().get_business_data(module, "username")
password = commonFuc().get_business_data(module, "password")
# 获取登录后Cmdc_access_token
cmdc_access_token = CmdcDoLogin("admin1", "FFtmods@365y").get_token()
print(cmdc_access_token)
headers = commonFuc().get_business_data(module, "json_headers1",cmdc_access_token)
print(headers)
request_body = commonFuc().get_business_data(module, "payload1")
print(request_body)
"""
场景:传入正确参数,获取到需求列表
用例名称:获取需求列表
输出:{"success":true,"code":"200","message":"OK"}
"""
# 发送请求
result = requests.post(url123, json=request_body, headers=headers)
result = json.loads(result.content)
print(result)
# 获取预期结果
check_dict = commonFuc().get_business_data(module, "checkDict2")
print(check_dict)
# 断言实际结果中是否包含预期结果的内容
commonFuc().check_result(check_dict, result)
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc需求单获取失败,sit,bs
主数据平台:运营后台管理系统需求单列表接口
"""
from common.common_func import commonFuc
import requests
import json
module = "cmdc_demand_list"
url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
# url = "https://service-slb.cmic.com.cn/order/back/listDemand"
print(url)
headers = commonFuc().get_business_data(module, "json_headers")
print(headers)
request_body = commonFuc().get_business_data(module, "payload")
print(request_body)
"""
场景:用户信息过期或获取失败,无法访问需求列表
用例名称:需求单-获取用户信息失败
输出:{"success":false,"code":"login_empty","message":"获取登录信息失败","data":null,"freshToken":null}
"""
# 发送请求
result = requests.post(url, json=request_body, headers=headers)
result = json.loads(result.content)
print(result)
# 获取预期结果
check_dict = commonFuc().get_business_data(module, "checkDict1")
print(check_dict)
# 断言实际结果中是否包含预期结果的内容
commonFuc().check_result(check_dict, result)
\ No newline at end of file
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc需求单删除功能验证,sit,bs
主数据平台:运营后台管理系统需求单删除接口
"""
from common.common_func import commonFuc
from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
import requests
import json
module = "cmdc_demand_list"
url123 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
print(url123)
# 获取登录所需账号密码
username = commonFuc().get_business_data(module, "username")
password = commonFuc().get_business_data(module, "password")
# 获取登录后Cmdc_access_token
cmdc_access_token = CmdcDoLogin("admin1", "FFtmods@365y").get_token()
print(cmdc_access_token)
headers = commonFuc().get_business_data(module, "json_headers1",cmdc_access_token)
print(headers)
request_body = commonFuc().get_business_data(module, "payload1")
print(request_body)
"""
场景:需求单可正常删除,删除后不再显示在需求列表中
用例名称:需求单删除功能验证
输出:{"success":true,"code":"200","message":"OK"}
"""
# 发送请求
result = requests.post(url123, json=request_body, headers=headers)
result = json.loads(result.content)
print(result)
# 获取预期结果
check_dict = commonFuc().get_business_data(module, "checkDict2")
print(check_dict)
# 断言实际结果中是否包含预期结果的内容
commonFuc().check_result(check_dict, result)
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc-dologin,多彩商城登录,sit,bs
"""
from common.common_func import commonFuc
import requests
import uuid
from common.verification_code_ocr import VerificationCodeOcr
import json
import os
module = "cmdc_login"
class CmdcDoLogin():
"""国药运营后台管理系统登录"""
def __init__(self, username, password):
self.username = username
self.password = password
def get_token(self):
# 获取唯一识别码
uuid_handle = uuid.uuid4()
# 获取验证码报文
param = {"uuid": uuid_handle}
# 获取多彩商城登录页面获取验证码地址
code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
# code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
# 发送请求获取验证码
result = requests.get(code_url, params=param)
# print(result.content)
with open("verifycode.png", 'wb') as f:
f.write(result.content)
# 获取当前文件路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
code_path = BASE_DIR + "/多彩商城登录.air/verifycode.png"
# 识别并获取验证码
code = VerificationCodeOcr(code_path, "rainbow123","rainbow123").base64_api()
# 获取多彩商城登录地址
cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "do_login_url")
# cmdc_url = "https://service-slb.cmic.com.cn/sso/mallLogin"
# 组装请求报文
request_body = {"userName": self.username, "password": self.password, "validateCode": code, "uuid": uuid_handle}
print(request_body)
# 发送请求
result = requests.post(cmdc_url, params=request_body)
# 获取预期结果
# check_dict = commonFuc().get_business_data(module, "checkDict")
# print(check_dict)
# # 断言实际结果中是否包含预期结果的内容
# commonFuc().check_result(check_dict, result)
result = json.loads(result.content)
token = commonFuc().analysis_json('accessToken', result)
return token
if __name__ == "__main__":
print(CmdcDoLogin("Test001", "Aa123456").get_token())
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc-dologin,多彩商城登录,sit,bs
"""
from common.common_func import commonFuc
import requests
import uuid
from common.verification_code_ocr import VerificationCodeOcr
import json
import os
import hashlib
module = "cmdc_login"
class CmdcDoLogin():
"""国药运营后台管理系统登录"""
def __init__(self, username, password):
self.username = username
self.password = password
def get_token(self):
# 获取唯一识别码
uuid_handle = uuid.uuid4()
# 获取验证码报文
param = {"uuid": uuid_handle}
# 获取多彩商城登录页面获取验证码地址
code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
# code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
# 发送请求获取验证码
result = requests.get(code_url, params=param)
# print(result.content)
# 获取当前文件路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
code_path = BASE_DIR + "/后台管理系统登录/verifycode.png"
# 获取到验证码存入本地文件
with open(code_path, 'wb') as f:
f.write(result.content)
# 识别并获取验证码
code = VerificationCodeOcr(code_path, "rainbow123","rainbow123").base64_api()
# 获取多彩商城登录地址
cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "do_login_url")
# cmdc_url = "https://service-slb.cmic.com.cn/sso/doLogin"
md = hashlib.md5(self.password.encode()) # 创建md5对象
EncryptPassword = md.hexdigest() # 登录密码进行md5加密
print('加密后的密码', EncryptPassword) # 加密后的密码
# 组装请求报文
request_body = {"userName": self.username, "password": EncryptPassword, "validateCode": code, "uuid": uuid_handle}
print(request_body)
# 发送请求
result = requests.post(cmdc_url, params=request_body)
# 获取预期结果
# check_dict = commonFuc().get_business_data(module, "checkDict")
# print(check_dict)
# # 断言实际结果中是否包含预期结果的内容
# commonFuc().check_result(check_dict, result)
result = json.loads(result.content)
print(result)
access_token = commonFuc().analysis_json('accessToken', result)
return access_token
if __name__ == "__main__":
cmdc_access_token = cmdc_dologin("admin1", "FFtmods@365y").get_token()
print(cmdc_access_token)
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc-maiilogin,多彩商城登录,sit,bs
"""
from common.common_func import commonFuc
import requests
import uuid
from common.verification_code_ocr import VerificationCodeOcr
import json
import os
module = "cmdc_login"
class CmdcMaiiLogin():
"""多彩商城登录"""
def __init__(self, username, password):
self.username = username
self.password = password
def get_token(self):
# 获取唯一识别码
uuid_handle = uuid.uuid4()
# 获取验证码报文
param = {"uuid": uuid_handle}
# 获取多彩商城登录页面获取验证码地址
code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
# code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
# 发送请求获取验证码
result = requests.get(code_url, params=param)
# print(result.content)
with open("verifycode.png", 'wb') as f:
f.write(result.content)
# 获取当前文件路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
code_path = BASE_DIR + "/多彩商城登录.air/verifycode.png"
# 识别并获取验证码
code = VerificationCodeOcr(code_path, "rainbow123", "rainbow123").base64_api()
# 获取多彩商城登录地址
cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "maii_login_url")
# cmdc_url = "https://service-slb.cmic.com.cn/sso/mallLogin"
# 组装请求报文
request_body = {"userName": self.username,"password": self.password,"validateCode": code,"uuid": uuid_handle}
print(request_body)
# 发送请求
result = requests.post(cmdc_url, params=request_body)
# 获取预期结果
# check_dict = commonFuc().get_business_data(module, "checkDict")
# print(check_dict)
# # 断言实际结果中是否包含预期结果的内容
# commonFuc().check_result(check_dict, result)
result = json.loads(result.content)
token = commonFuc().analysis_json('accessToken', result)
return token
if __name__ == "__main__":
print(CmdcMaiiLogin("Test001", "Aa123456").get_token())
# -*- encoding=utf8 -*-
__author__ = "liguangyu"
"""
case_tag:api,cmdc-maiilogin,多彩商城登录,sit,bs
"""
from common.common_func import commonFuc
import requests
import uuid
from common.verification_code_ocr import VerificationCodeOcr
import json
import os
module = "cmdc_login"
class CmdcMaiiLogin():
"""多彩商城登录"""
def __init__(self, username, password):
self.username = username
self.password = password
def get_token(self):
# 获取唯一识别码
uuid_handle = uuid.uuid4()
# 获取验证码报文
param = {"uuid": uuid_handle}
# 获取多彩商城登录页面获取验证码地址
code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
# code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
# 发送请求获取验证码
result = requests.get(code_url, params=param)
# print(result.content)
with open("verifycode.png", 'wb') as f:
f.write(result.content)
# 获取当前文件路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
code_path = BASE_DIR + "/多彩商城登录.air/verifycode.png"
# 识别并获取验证码
code = VerificationCodeOcr(code_path, "rainbow123", "rainbow123").base64_api()
# 获取多彩商城登录地址
cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "maii_login_url")
# cmdc_url = "https://service-slb.cmic.com.cn/sso/mallLogin"
# 组装请求报文
request_body = {"userName": self.username,"password": self.password,"validateCode": code,"uuid": uuid_handle}
print(request_body)
# 发送请求
result = requests.post(cmdc_url, params=request_body)
# 获取预期结果
# check_dict = commonFuc().get_business_data(module, "checkDict")
# print(check_dict)
# # 断言实际结果中是否包含预期结果的内容
# commonFuc().check_result(check_dict, result)
result = json.loads(result.content)
token = commonFuc().analysis_json('accessToken', result)
return token
if __name__ == "__main__":
print(CmdcMaiiLogin("Test001", "Aa123456").get_token())
import base64
import json
import requests
class VerificationCodeOcr:
"""
1、用于识别数字二维码
2、本方法使用的是第三方识别接口(图鉴),因此需要账号和密码
3、通过验证码获取接口获取到验证码之后需保存到png文件,再使用此类进行识别
filename:文件
username:图鉴系统用户名
password:图鉴系统密码
"""
def __init__(self, filename, username, password):
self.filename = filename
self.username = username
self.password = password
def base64_api(self):
with open(self.filename, 'rb') as f:
base64_data = base64.b64encode(f.read())
b64 = base64_data.decode()
data = {"username": self.username, "password": self.password, "typeid": 1, "image": b64}
result = json.loads(requests.post(r"http://api.ttshitu.com/predict", json=data).text)
if result['success']:
return result["data"]["result"]
else:
return result["message"]
return ""
if __name__ == '__main__':
print(VerificationCodeOcr(r"air_case/cmdc_login/多彩商城登录.air/verifycode.png","rainbow123","rainbow123").base64_api())
# 快速下单下单权限判定接口url
"url": "/cms/public/isQuickOrderSign"
"companyId1": "2"
"companyId2": "57"
"payload": {
"companyId": "%s"
}
# 预期结果
checkDict1: {"success":true,"code":"200","message":null,"data":{"quickOrderSign":1},"freshToken":null}
checkDict2: {"success":true,"code":"200","message":null,"data":{"quickOrderSign":0},"freshToken":null}
#需求单列表接口
"url": "/order/back/listDemand"
json_headers: {
"Content-Type": "application/json",
"Cmdc_access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInVzZXJOYW1lIjoiYWRtaW4yIiwidGltZSI6MTY5Mzk4ODY5NDg0M30.f71cshaaFyY2w2i53P87etu5-x2Y3gqMVKraUGYndp0"
}
"payload": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
#预期结果
checkDict1: {"success":false,"code":"login_empty","message":"获取登录信息失败","data":null,"freshToken":null}
# 后台运营管理系统登录信息
"username": "admin1"
"password": "FFtmods@365y"
json_headers1: {
"Content-Type": "application/json",
"Cmdc_access_token": "%s"
}
"payload1": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
#预期结果
checkDict2: {"success":true,"code":"200","message":"OK"}
# 多彩商城图形验证码url
"getVerifyCode_url": "/sso/getVerifyCode"
# 多彩商城登录地址
"maii_login_url": "/sso/mallLogin"
# 多彩商城登录信息
"do_username": "Test001"
"do_password": "Aa123456"
# 国药运营后台管理系统登录地址
"do_login_url": "/sso/doLogin"
# 多彩商城登录信息
"username": "admin1"
"password": "Aa123456"
Supports Markdown
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