def save_cookie_yml(self, yml_data): file_path = common_util.env('COOKIE_YML') # logger.debug(f"打开文件: {file_path}") with open(file_path, 'w', encoding='utf-8') as f: tmp_data = yaml.safe_dump(yml_data, f, default_flow_style=False) # 写入文件,不是用flow流格式 # logger.debug(f"写入数据: {tmp_data} ") return tmp_data
result = self.x_request() assert_util.result_check(result) return result # 撤回审核操作 # id=1658&retrievedReason=2 # data为null def retrieve_audit(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/mxc/clk-clock-audit/retrieve' self.req_body = kwargs self.req_cookies = { 'token': auth_util.get_token( 'web', 'gz_token'), # api_token_1553151F52226FFBF1AF1343FBD8F4E5 } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result clk_clock_audit = ClkClockAudit(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': kwargs = data_pool.supply('xxx.yml', 'upload_info') # 此时kwargs是dict类型 clk_clock_audit.req_get(**kwargs) # 通过**操作符将kwargs解包成 n个入参
self.req_method = 'POST' self.req_url = '/lottery/save' self.req_body = kwargs self.req_cookies = { 'api_account_token': auth_util.get_token('crm', 'api_account_token'), } result = self.x_request() assert_util.result_check(result) return result # 抽奖活动列表 def get_list(self, **kwargs): self.req_method = 'GET' self.req_url = '/lottery/getList' self.req_body = {'pageNum': 10, 'pageSize': 1} self.req_cookies = { 'exam_token': auth_util.get_token('bbc', 'exam_token'), } result = self.x_request() assert_util.result_check(result) return result zeus_mongo = ZeusMongo(common_util.env('DOMAIN_GZ') + '/gzactivity') # if __name__ == '__main__': # kwargs = data_pool.supply('anniv_answer_award_data.yml', 'save_8thank')[0] # res1 = zeus_mongo.save(**kwargs) # assert res1.status is True
def get_cookies_all(): cookie = data_pool.load_yml(common_util.env('COOKIE_YML')) return cookie
def get_gz_token(kw): cookie = data_pool.load_yml(common_util.env('COOKIE_YML')) kw_cookie = cookie.get(kw).get('api_account_token') return kw_cookie
'SELECT min_points FROM scoring_dimension where id = 3')[0][0] if finvalue == 2: logger.info(finvalue) return result # 保存评分维度-新增 def add_scoring_dimension(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/scoringDimension/saveScoringDimension' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body) return result project_pk = ProjectPK(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': kwargs = data_pool.supply('project_pk_data.yml', 'add_scoring_dimension')[0] kwargs['name'] = fakerist.word() res1 = project_pk.add_scoring_dimension(**kwargs) assert_util.result_check(res1) assert res1.status is True
'JSESSIONID': auth_util.get_cookie('crm'), } result = self.x_request() assert_util.result_check(result) return result # 提交报名信息 def submit_enter_name_info(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/competitionEnterName/submitEnterNameInfo' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('web'), } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, json=self.req_body) assert_util.result_check(result) return result cmpttn_pk = CompetitionPK(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': # competition_enter.submit_enter_name_info('66', 8, '86', '18659107886', '随便用', 'M', "IDCARD", '441481199407171234') # cmpttn_pk.submit_enter_name_info('67', 9, '86', '18659107886', 'z最终版', 'M', "IDCARD", '441481199407175678') # competition_enter.submit_enter_name_info('65', 7, '86', '18666024993', '签约客', 'M', "IDCARD", '441481199407173333') pass
self.req_method = 'POST' self.req_url = '/order/orderDetail' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), 'exam_token': auth_util.get_token('bbc', 'exam_token'), } result = self.request( method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body ) assert_util.result_check(result) return result mxc_order = MxcOrder(common_util.env('DOMAIN_GZ') + '/mxcorder') if __name__ == '__main__': kwargs = data_pool.supply('mxcorder_data.yml', 'send_coupon_to_user')[0] kwargs['userId'] = '4003926' # 18899708134 kwargs['couponId'] = '4393' res = mxc_order.send_coupon_to_user(**kwargs) assert res.status is True kwargs1 = data_pool.supply('mxcorder_data.yml', 'order_detail')[0] kwargs['userId'] = '4003926' # 18899708134 kwargs['goodsId'] = '765' res1 = mxc_order.order_detail(**kwargs) order_id = res1.sdata.get('id') # 订单ID assert res1.status is True
self.req_body = {"inviteCode": invite_code} self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('web'), } result = self.x_request() assert_util.result_check(result) return result # 修改活动时间 def dbf_set_time(self, start_time, end_time): self.req_method = 'POST' self.req_url = '/core/dragonBoatFestival/setTime' self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), } self.req_body = {"startTime": start_time, "endTime": end_time} result = self.request(method=self.req_method, url=self.req_url, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result dbf = DBF(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': # dbf.dbf_set_time('1624204800000', '1625065200000') # 21-30 未开始 dbf.dbf_set_time('1622476800000', '1625065200000') # 1-30 进行中 # dbf.dbf_set_time('1622476800000', '1622646000000') # 1-2 已结束
# 新增leads # 要先调用 api-sit.miaocode.com/api/mxcaccount/account/logout接口 # 获取响应头中的 Set-Cookie: SESSION=O def add_visit_leads(self, **kwargs): self.req_method = 'POST' self.req_url = '/leads/visit/addVisitLeads' self.req_body = kwargs self.req_headers = { 'mxc-token': auth_util.get_token('mxc', 'mxc-token'), } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, json=self.req_body) assert_util.result_check(result) return result mxc_user = MxcUser(common_util.env('DOMAIN_GZ') + '/mxcuser') if __name__ == '__main__': kwargs = data_pool.supply('mxcuser_data.yml', 'add_visit_leads')[0] kwargs['childName'] = 'Asc' + fakerist.word() kwargs['phone'] = '18899708138' res1 = mxc_user.add_visit_leads(**kwargs) userid = res1.sdata.get('userId') # 4003926 childName = res1.sdata.get('childName') # Asc以及 assert res1.status is True
def send_coupon_to_user(self, couponid, userid): self.req_method = 'POST' self.req_url = '/core/coupon/sendCoupon2User' self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), } self.req_body = { "couponId": couponid, "userId": userid } result = self.request( method=self.req_method, url=self.req_url, cookies=self.req_cookies, data=self.req_body ) assert_util.result_check(result) return result coupon = Coupon(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': pass # 运营推给CC # kwargs = data_pool.supply('coupon_data.yml', 'create_coupon_school')[0] # meet_amount = kwargs['meetamount'] # sub_amount = kwargs['subamount'] # kwargs['title'] = f'校区-{meet_amount}-{sub_amount}-{fakerist.word()}' # res1 = coupon.create_coupon(**kwargs) # couponId = logger.log(res1.sdata.get('id')) # 返回优惠券批次id 即yml里的 couponId=4393 # assert res1.status is True
def get_token(self): self.req_method = 'GET' self.req_url = '/core/leadsApi/getToken' self.req_body = { "secret": 'w@qB^qxXHhYkLdEJOTEeWigR4rbpm8Ja' } self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('web'), } result = self.x_request() assert_util.result_check(result) return result def upload_info(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/leadsApi/upload' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), } result = self.x_request() assert_util.result_check(result) return result leads_api = LeadsAPI(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': leads_api.get_token() # leads_api.upload_info('token_9fcefa8a596b4434aac8c5ab051b5fa0')
import pymysql from util import common_util from util.log_util import logger DB_CONF = { "host": common_util.env('MYSQL_HOST'), "port": int(common_util.env('MYSQL_PORT')), "user": common_util.env('MYSQL_USER'), "password": common_util.env('MYSQL_PASSWD'), "db": common_util.env('MYSQL_DB'), } class Mysqler: def __init__(self, db_conf=DB_CONF): # 通过字典拆包传递配置信息,建立数据库连接 self.conn = pymysql.connect(**db_conf, autocommit=True) # 通过 cursor() 创建游标对象 self.cur = self.conn.cursor() # 返回数据不带列名字典 # self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor) #返回数据带列名字典 def __del__(self): # 对象资源被释放时触发,在对象即将被删除时的最后操作 # 关闭游标 self.cur.close() # 关闭数据库连接 self.conn.close() def query(self, sql): """查询""" # 检查连接是否断开,如果断开就进行重连
def redis_init_pool(self): pool = redis_util.ConnectionPool(host=common_util.env('REDIS_HOST'), port=common_util.env('REDIS_PORT'), decode_responses=True) r = redis_util.Redis(connection_pool=pool) return r
# def logout(self, **kwargs): # self.req_method = 'POST' # self.req_url = '/mxcaccount/account/logout' # self.req_body = kwargs # self.req_headers = { # "mxc-token": "c065eafd-ecd5-415f-b506-ab05d1fe6369" # } # self.req_cookies = { # 'SESSION': "YmU2NjYyZjctZjUwNy00NGYwLTg3ZTUtODUzMDhjMzA5YWQw", # # 'exam_token': auth_util.get_token('bbc', 'exam_token'), # } # result = self.request( # method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, # json=self.req_body # ) # assert_util.result_check(result) # # auth_util.set_token('mxc', 'SESSION', result.rsp.cookies["token"]), # logger.info(result.rsp.headers) # auth_util.set_token('mxc', 'SESSION', result.rsp.headers['Set-Cookie']['SESSION']) # logger.info(result.rsp.headers['Set-Cookie']['SESSION']) # return result mxc_account = MxcAccount(common_util.env('DOMAIN_GZ')) if __name__ == '__main__': # kwargs = data_pool.supply('channel.yml', 'add_channel')[0] # kwargs['name'] = fakerist.word() res1 = mxc_account.login() assert res1.status is True
assert_util.result_check(result) return result # 用户投票 def vote(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/teacherVote/vote' self.req_body = kwargs result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result # 学员的用户投票详情 def get_user_canvass_dto_list(self, **kwargs): self.req_method = 'GET' self.req_url = '/core/user/activity/canvass/getUserCanvassDtoList' self.req_body = kwargs result = self.x_request() assert_util.result_check(result) return result teachers_day_vote = TeachersDayVote(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': teachers_day_vote.save_match()
self.req_url = '/core/goodsOrder/update' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), # 'exam_token': auth_util.get_token('bbc', 'exam_token'), } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result goods_order = GoodsOrder(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': # 微信支付回调 # goods_order.pay_callback_suc('202112101213017854754781') # 取消订单 # goods_order.cancel_order('51796') # 创建订单 kwargs0 = data_pool.supply('goods_order_data.yml', 'demolition_order_omo')[0] kwargs0['userId'] = '155863' # 用户的userid kwargs0['goodsIds'] = '765' # 2元的K2D kwargs0['orderSource'] = 'SCHOOL_ORDER' res0 = goods_order.demolition_order(**kwargs0) assert res0.status is True
logger.info(api_account_token) return result def crm_login_with(self, account_name): self.req_method = 'get' self.req_url = '/core/account/login' self.req_body = { "accountName": account_name, "accountPassword": "******", "captcha": 'qwe123EWQ#@!' } result = self.x_request() assert_util.result_check(result) core_jsessionid = result.rsp.cookies["JSESSIONID"] api_account_token = result.rsp.cookies["api_account_token"] # auth_util.set_cookie('crm', core_jsessionid) auth_util.set_token('crm', 'jsessionid', core_jsessionid) auth_util.set_token('crm', 'api_account_token', api_account_token) logger.debug(core_jsessionid) return result account = Account(common_util.env('DOMAIN_CORE')) # account2 = Account(common_util.env("DOMAIN_MOCK") + '/' + common_util.env("YAPI_PROJ_CORE")) if __name__ == '__main__': account.crm_login() # account2.crm_login()
'api_account_token': auth_util.get_gz_token('crm'), } result = self.x_request() assert_util.result_check(result) return result # 新建知识点 def new_knowpoint(self, name): self.req_method = 'POST' self.req_url = '/gzlqb/scienceart/exam/knowLedgePoint/insert' self.req_body = {'name': name} self.req_cookies = { 'api_account_token': auth_util.get_gz_token('crm'), } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result bbc_match = BBCMatch(common_util.env('DOMAIN_GZ')) if __name__ == '__main__': pass # bbc_match.new_knowpoint("asccc") # kwargs = data_pool.supply('bbc_contest_data.yml', 'new_subject_single')[0] # bbc_match.new_subject(**kwargs)
result = self.request( method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body ) auth_util.set_token('bbc', 'exam_token', result.rsp.cookies["exam_token"]) assert_util.result_check(result) return result '''get请求 直接用x_request() 将多个参数合并成字段 ''' def req_get(self, **kwargs): self.req_method = 'GET' self.req_url = '/core/account/login' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_token('crm', 'jsessionid') } result = self.x_request() # assert_util.result_check(result) return result sample = Sample(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': kwa = data_pool.supply('sample_data.yml', 'test_reset_pwd')[0] # 此时kwargs是dict类型 sample.req_get(**kwa) # 通过**操作符将kwargs解包成 n个入参 # pass
return result # 更新活动 启用状态 def update_status(self, **kwargs): self.req_method = 'POST' self.req_url = '/projectActivityManage/updateStatus' self.req_body = kwargs self.req_cookies = { # "token": "accoundPhonetoken0f77f84d-e07f-4004-af15-33018be469a1", "api_account_token": "api_account_token_AE73B820F68F421D67B1905E48015213ECC913578E81D4056E1BCBEB60CF5D93", } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, json=self.req_body) assert_util.result_check(result) return result project_ranking = ProjectRanking(common_util.env('DOMAIN_GZ') + '/gzactivity') if __name__ == '__main__': # 活动启用 kwargs2 = data_pool.supply("project_ranking_data.yml", 'update_status')[0] kwargs2['id'] = 74 kwargs2['status'] = 1 # 1启用 0禁用 res2 = project_ranking.update_status(**kwargs2) assert res2.status is True
import inspect import json from configparser import ConfigParser import yaml from util import common_util BASE_PATH = common_util.env('PROJECT_ROOT') # 由于[安全问题](https://security.openstack.org/guidelines/dg_avoid-dangerous-input-parsing-libraries.html) # 建议使用yaml.safe_load()而不是yaml.load()以防止代码注入。 class MyConfigParser(ConfigParser): # 重写 configparser 中的 optionxform 函数,解决 .ini 文件中的 键option 自动转为小写的问题 def __init__(self, defaults=None): ConfigParser.__init__(self, defaults=defaults) def optionxform(self, optionstr): return optionstr class DataPool: def __init__(self): pass # def safe_yml(self, file_path, yml_data): # # logger.debug(f"加载文件 {file_path}") # with open(file_path, 'w', encoding='utf-8') as f: # tmp_data = yaml.safe_dump(yml_data, f, default_flow_style=False) # 写入文件,不是用flow流格式
def get_cookie(kw): cookie = data_pool.load_yml(common_util.env('COOKIE_YML')) kw_cookie = cookie.get(kw).get('jsessionid') return kw_cookie
from util import assert_util from util import auth_util from util import common_util from util.data_util import data_pool class GroupBuy(BaseRequest): def __init__(self, api_root_url, **kwargs): super(GroupBuy, self).__init__(api_root_url, **kwargs) def add_activity(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/group_buy/add_activity' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), } result = self.request(method=self.req_method, url=self.req_url, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result group_buy = GroupBuy(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': kwargs = data_pool.supply('group_buy_data.yml', 'add_activity_2')[0] group_buy.add_activity(**kwargs)
def get_token(kw, kwson): cookie = data_pool.load_yml(common_util.env('COOKIE_YML')) kw_cookie = cookie.get(kw).get(kwson) return kw_cookie
def __init__(self, root_url, **kwargs): super(Channel, self).__init__(root_url, **kwargs) def add_channel(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/channel/addChannel' self.req_body = kwargs self.req_cookies = { 'JSESSIONID': auth_util.get_cookie('crm'), 'exam_token': auth_util.get_token('bbc', 'exam_token'), } result = self.request(method=self.req_method, url=self.req_url, headers=self.req_headers, cookies=self.req_cookies, data=self.req_body) assert_util.result_check(result) return result channel = Channel(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': pass # kwargs = data_pool.supply('channel.yml', 'add_channel')[0] # fake = "Asc"+fakerist.month_name() # kwargs['name'] = fake # kwargs['code'] = fake # res1 = channel.add_channel(**kwargs) # assert res1.status is True
self.req_url = '/core/user/getCurrentUser' result = self.request(method='GET', url=self.req_url, headers=self.req_headers, params=self.req_body) # asserter.result_check(result) # 响应码=200,code=000002, success=false message=当前用户校验不通过 print(result.sdata) if result.rsp.status_code == 200: jsession_id = result.rsp.cookies['JSESSIONID'] print(jsession_id) auth_util.set_cookie('web', jsession_id) return result user = User(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': phone = '9758137' # userid = '110311' user.phone_exist(phone) # user.get_current_user() # user.get_current_user_nocookie() # userid = sql_util.sql_phone_to_userid(phone) # res = user.reset_pwd(userid) # res = user.reset_pwd('4002070') # print(res) # res1 = user.send_sms2(phone)
self.req_url = '/lottery/getUserPrizeRecord' self.req_body = kwargs self.req_cookies = { 'exam_token': auth_util.get_token('bbc', 'exam_token'), } result = self.x_request() assert_util.result_check(result) return result # 导出中奖记录 # id,userId def export_activity_record(self, **kwargs): self.req_method = 'GET' self.req_url = '/lottery/activityRecord' self.req_body = kwargs self.req_cookies = { 'exam_token': auth_util.get_token('bbc', 'exam_token'), } result = self.x_request() assert_util.result_check(result) return result anniv_answer_award = AnnivAnswerAward( common_util.env('DOMAIN_GZ') + '/gzactivity') if __name__ == '__main__': kwargs = data_pool.supply('anniv_answer_award_data.yml', 'save_8thank')[0] res1 = anniv_answer_award.save(**kwargs) assert res1.status is True
goodsLessonQty: [{"courseLayer":"E4","lessonQty":5},{"courseLayer":"R1","lessonQty":5}] recordCourseId: 92678,92692 """ class Goods(BaseRequest): def __init__(self, root_url, **kwargs): super(Goods, self).__init__(root_url, **kwargs) def add_new_goods(self, **kwargs): self.req_method = 'POST' self.req_url = '/core/goods/addNewGoods' self.req_body = kwargs result = self.request( method=self.req_method, url=self.req_url, data=self.req_body, cookies=self.req_cookies ) assert_util.result_check(result) core_jsessionid = result.rsp.cookies["JSESSIONID"] auth_util.set_cookie('crm', core_jsessionid) logger.debug(core_jsessionid) return result goods = Goods(common_util.env('DOMAIN_CORE')) if __name__ == '__main__': pass # kwargs = data_pool.supply("","") # goods.add_new_goods(**kwargs)
assert_util.result_check(result) return result # 期中期末新增考试 def add_exam(self, **kwargs): self.req_method = 'POST' self.req_url = '/gzexam/exam/examination/add' self.req_cookies = { "token": "api_token_78FFF87040F1D73F58CE527C892B5FD4", "api_account_token": "api_account_token_AE73B820F68F421D67B1905E48015213ECC913578E81D4056E1BCBEB60CF5D93", "SESSION": 'YjgyNWI5NjgtODY2Mi00MDQ5LWE1ODctMmQzN2FjZmRmOWEx' } self.req_body = kwargs result = self.request(method=self.req_method, url=self.req_url, cookies=self.req_cookies, json=self.req_body) assert_util.result_check(result) return result other = Other(common_util.env('DOMAIN_GZ')) if __name__ == '__main__': other.func2(1, 2, a=3, b=4) # print(f'装饰外模块名:{other.__module__.__}') # print(f'装饰外函数名:{other.func2.__name__}') # other.upload_material('pwd')