def test_ordercreate_03(self): """source_id参数值错误""" timeStamp_login = int(time.mktime(datetime.now().timetuple())) headers = RunMain().headers_token(timeStamp_login) timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"source_id":"a",' \ '"source_type":2,' \ '"pay_method":3,' \ '"app_key":"%(app_key)s",' \ '}' % { 'version': version, 'app_key': app_key, 'access_token': access_token, 'timeStamp': timeStamp} data = get_Sign().encrypt(data) response = requests.post(self.url, data=json.dumps(data), headers=headers) self.assertEqual(400, response.status_code, "source_id参数值错误接口状态码应返回400")
def test_ordercreate_01(self): """正确的参数""" timeStamp_login = int(time.mktime(datetime.now().timetuple())) headers = RunMain().headers_token(timeStamp_login) timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) # source_type 必填, 1是商品, 2是套餐;source_id 必填, 商品或者套餐id;pay_method 必填, 支付方式 data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"source_id":1,'\ '"source_type":2,'\ '"pay_method":3,'\ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'app_key': app_key, 'access_token': access_token, 'timeStamp': timeStamp} data = get_Sign().encrypt(data) response = requests.post(self.url, data=json.dumps(data), headers=headers) self.assertEqual(1, response.json()['data']['source_id'], "订单创建接口返回的source_id应为1")
def test_01_config(self): """正确的请求参数""" time.sleep(1) timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"os_type": 1,' \ '"app_key":"%(app_key)s",' \ '"os_version":"9",' \ '"carrier":3,' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"imei":"869384032108431",' \ '"latitude":34.223866,' \ '"gcid":"dba9f3c2e8926564d3c930790c232bcf",' \ '"bssid":"4c:e9:e4:7d:41:c1",' \ '"longitude":108.909907,' \ '"installation_id":1904301718321742,' \ '"force_reload_user":true,' \ '"app_version":"%(version)s",' \ '"timeStamp":%(timeStamp)d}' % { 'app_key': app_key, 'timeStamp': timeStamp, 'version': version} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=self.url, data=json.dumps(form), headers=headers) response_data = RunMain().decrypt_to_dict(response, 'c_p') self.assertEqual( "1.0", response_data['api']['version'], "config接口返回的api-version应该为%s" % response_data['api']['version'])
def test_video_01(self): """正确的请求参数""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"content_id": %(content_id)d, ' \ '"content_type": %(content_type)d, ' \ '"os_type": 1, ' \ '"app_version": "%(version)s", ' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"}' % { 'content_id': self.content_video['id'], 'content_type': self.content_type, 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(self.url, data=json.dumps(form), headers=headers) response_data = RunMain().decrypt_to_dict(response, 'r') msg = '上线剧集{0}的期望id是{1},实际id是{2}'.format(self.content_video["title"], self.content_video["id"], response_data["id"]) self.assertEqual(self.content_video["id"], response_data["id"], msg=msg)
def videolist(self, video): time.sleep(0.1) #点播资源连跑有5000多条,服务器请求会有延时,加3秒等待下就好了 url = self.baseurl + "/cms/v1.2/video" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"os_type":1, ' \ '"app_version":"%(version)s", ' \ '"content_id":%(video_id)d, ' \ '"content_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"}' % { 'version': self.version, 'app_key': self.app_key, 'timeStamp': timeStamp, 'video_id': video["id"]} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = self.aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=url, data=json.dumps(form), headers=self.headers) response_data = RunMain().decrypt_to_dict(response, 'r') msg = '上线剧集{0}的期望id是{1},实际id是{2}'.format(video["title"], video["id"], response_data["id"]) self.assertEqual(video["id"], response_data["id"], msg=msg)
def get_app_scret_key(self): timeStamp = int(time.mktime(datetime.now().timetuple())) # 以下参数包括sign是必传的,总共有八个参数 data = '{"os_type": 1,' \ '"app_key":"xdThhy2239daax",' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"app_version":"%(version)s",' \ '"timeStamp":%(timeStamp)d}' % { 'timeStamp': timeStamp, 'version': version} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = self.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=self.url, data=json.dumps(form), headers=self.headers) print(response.status_code) r_data = response.json()['data'] str_decrypt = self.decrypt(r_data, 'c_p') global false, null, true false = null = true = "" response_data = eval(str_decrypt) app_scret_key = response_data["setting"]["app_scret_key"][0:16] return app_scret_key
def hotsearch_list_video(self, content, category): time.sleep(1) timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"content_id": %(content_id)d, ' \ '"content_type": %(content_type)d, ' \ '"os_type": 1, ' \ '"app_version": "%(version)s", ' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"}' % { 'content_id': content["content_id"], 'content_type': content["content_type"], 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} headers = RunMain().headers() url = baseurl + "/cms/v1.2/video" response = requests.post(url=url, data=json.dumps(form), headers=headers) msg = "搜索页面{0}页签的{1}视频无法点播".format(category, content["title"]) self.assertEqual(200, response.status_code, msg=msg) response_data = RunMain().decrypt_to_dict(response, 'r') self.assertEqual(content["content_id"], response_data['id'], msg=msg)
def test_filter_result_01(self): """正确的请求参数, id为综艺page""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"category_id" : 1, ' \ '"os_type" : 1, ' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"timestamp":%(timeStamp)d,' \ '"app_version":"%(version)s", ' \ '"app_key": "%(app_key)s", ' \ '"content_type": 1,' \ '"limit":5,' \ '"offset":0}' % { 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {'data': crypt_data, 'encode': 'v1'} response = requests.post(self.url, data=json.dumps(form), headers=headers) response_data = self.decrypt_to_dict(response.json()['data'], 1, '"expired_at":null}') self.assertTrue(len(response_data['title']) > 0, "页面加载的内容不能为空")
def test_minutelylist_01(self): """正确的参数""" timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"app_key":"xdThhy2239daax",' \ '"access_token":"%(access_token)s",' \ '"timestamp":%(timeStamp)d,' \ '"installation_id":1904301718321742,' \ '"stock_code":"sh000001"' \ '}'% { 'version': version, 'access_token': access_token, 'timeStamp': self.timeStamp} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign": "%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(self.url, data=json.dumps(form), headers=headers) response_stock = RunMain().decrypt_to_dict(response, 'r')["minutely"][0] self.assertEqual("sh000001", response_stock["stock_code"], "上证股票号码应该sh000001")
def test_logout_02(self): """headers中不包含token""" timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) headers = RunMain.headers(self) data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"provider":1,' \ '"app_key":"ddfsweer",' \ '"device_id":"802ca0fba119ab0a",' \ '"country_code":"+86",' \ '"installation_id":1904301718321742,' \ '"longitude":108.90823353286173,' \ '"latitude":34.21936825217505,' \ '}' % { 'version': version, 'access_token': access_token, 'timeStamp': timeStamp} data = get_Sign().encrypt(data) response = requests.post(self.url, data=json.dumps(data), headers=headers) self.assertEqual(500, response.json()['err_code'], "接口返回的err_code应为500")
def test_researchreport_detail_02(self): """错误的请求参数""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s", ' \ '"installation_id": 1904301718321742,' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"os_type":1,' \ '"id": -1}' % { 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(self.url, data=json.dumps(form), headers=headers) self.assertEqual(400, response.status_code, "大咖的id参数错误,研报接口状态码应为400") self.assertEqual(500, response.json()["err_code"], "大咖的id参数错误,研报接口应返回err_code为500")
def test_page_01(self): """正确的请求参数""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"id": [%(page_id)d], "os_type":1,' \ '"app_version":"%(version)s",' \ '"timestamp":%(timeStamp)d,' \ '"page_alias":"",'\ '"installation_id":1901231425555756,'\ '"device_id":"40439d078e887033",'\ '"os_version":"8.1.0",'\ '"channel":"dopool",'\ '"app_key": "%(app_key)s"}' % { 'version': version, 'timeStamp': timeStamp, 'app_key': app_key, 'page_id' : self.get_config_page_id()} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {'data': crypt_data, 'encode': 'v1'} response = requests.post(self.url, data=json.dumps(form), headers=headers) response_data = RunMain().decrypt_to_dict(response, 'r')[0] msg = '页面{0}的期望id是{1},实际id是{2}'.format(response_data['name'], self.get_config_page_id(), response_data['id']) self.assertEqual(self.get_config_page_id(), response_data['id'], msg=msg)
def test_smscode_02(self): """错误的参数""" timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":3,' \ '"timestamp":%(timeStamp)d,' \ '"mobile":"%(telephone)s",' \ '"app_key":"%(app_key)s",' \ '"device_id":"802ca0fba119ab0a",' \ '"country_code":"+86",' \ '"installation_id":1904301718321742,' \ '"longitude":108.90823353286173,' \ '"latitude":34.21936825217505}' % { 'version': version, 'access_token': access_token, 'timeStamp': self.timeStamp, 'app_key': app_key, 'telephone': telephone} data = get_Sign().encrypt(data) response = requests.post(self.url, data=json.dumps(data), headers=headers) assert response.json()['err_code'] == 500
def test_researchreport_detail_01(self): """正确的请求参数""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s", ' \ '"installation_id": 1904301718321742,' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"os_type":1,' \ '"id": %(id)d}' % { 'version': version, 'id': self.reseachreport_id['id'], 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=self.url, data=json.dumps(form), headers=headers) self.assertTrue( response.json()['err_code'] == 0 and response.json()['encode'] == 'v1', "请求失败")
def test_tycoon_list_01(self): """参数有tycoon_id,返回单个大咖信息""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"tycoon_id":%(tycoon_id)d,' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",'\ '"device_id":"802ca0fba119ab0a",' \ '"limit":1,' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'tycoon_id': self.tycoon_detail["id"], 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {'data': crypt_data, 'encode': 'v1'} response = requests.post(self.url, data=json.dumps(form), headers=headers) print(RunMain().decrypt_to_dict(response, 'r')) tycoon_name = RunMain().decrypt_to_dict(response, 'r')[0]["name"] self.assertEqual(self.tycoon_detail["name"], tycoon_name, "大咖姓名应该是{0}".format(self.tycoon_detail["name"]))
def test_tycoon_list_02(self): """参数tycoon_id值错误""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"tycoon_id":10000000,' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",'\ '"device_id":"802ca0fba119ab0a",' \ '"limit":1,' \ '"query_type":"all",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {'data': crypt_data, 'encode': 'v1'} response = requests.post(self.url, data=json.dumps(form), headers=headers) video_all = RunMain().decrypt_to_dict(response, 'r') self.assertEqual({}, video_all, "返回的大咖视频应该为空")
def test_tycoon_video_list_01(self): """参数有tycoon_id,返回单个大咖信息""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"tycoon_id":%(tycoon_id)d,' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",'\ '"device_id":"802ca0fba119ab0a",' \ '"limit":1,' \ '"query_type":"all",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'tycoon_id': self.tycoon_id, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {'data': crypt_data, 'encode': 'v1'} response = requests.post(self.url, data=json.dumps(form), headers=headers) # 返回的是curriculum课程和realtime实时分析两个列表,合在一起验证 video_dict = self.get_response_tycoon_video(response) for video_id in self.get_database_tycoon_video(): msg = "大咖{0}的视频列表中应包含的视频id为{1}".format(self.tycoon_name["name"], video_id) self.assertIn(video_id, video_dict, msg)
def epg_shield(self, city_ip, shield_type): """屏蔽""" stream_id = mysql.select_one( 'select id FROM stream where title = "CCTV1";')["id"] date_list = self.get_date_list() timeStamp = int(time.mktime(datetime.datetime.now().timetuple())) data = '{"stream_id":%(stream_id)d,' \ '"date":["%(date_3)s","%(date_2)s","%(date_1)s","%(date_0)s"],' \ '"os_type":1,' \ '"app_version":"%(version)s",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"}' % { 'date_3': date_list[0], 'date_2': date_list[1], 'date_1': date_list[2], 'date_0': date_list[3], 'stream_id': stream_id, 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} headers = RunMain().shield_headers(city_ip) response = requests.post(url=self.url, data=json.dumps(form), headers=headers) if shield_type == "keyword": self.assert_epg_keyword_blocked(response, keyword) else: self.assert_epg_timeslot_blocked(response, starttime, endtime)
def test_researchreport_list_01(self): """参数有tycoon_id,返回大咖主页研报""" timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"tycoon_id":%(tycoon_id)d,' \ '"query_type":"all",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'tycoon_id': self.researchreport_detail["tycoon_id"], 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {'data': crypt_data, 'encode': 'v1'} response = requests.post(self.url, data=json.dumps(form), headers=headers) researchreport_all = RunMain().decrypt_to_dict(response, 'r') # - charge 列表为收费研报 # - free 列表为免费研报 title_list = [] for free_page in ["free", "charge"]: if free_page in researchreport_all.keys(): for researchreport in researchreport_all[free_page]: title_list.append(researchreport["title"]) msg = f'大咖id为{self.researchreport_detail["tycoon_id"]},大咖的研报应该包含{self.researchreport_detail["title"]}' self.assertIn(self.researchreport_detail["title"], title_list, msg)
def test_update_01(self): """正确的请求参数""" timeStamp_login = int(time.mktime(datetime.now().timetuple())) headers = RunMain().headers_token(timeStamp_login) timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s",' \ '"installation_id":1904301718321742,' \ '"avatar" : "%(avatar)s"' \ '}' % { 'version': version, 'app_key': app_key, 'access_token': access_token, 'timeStamp': timeStamp, 'avatar': avatar} data = get_Sign().encrypt(data) response = requests.post(self.url, data=json.dumps(data), headers=headers) response_data = response.json() assert response_data['err_code'] == 0 and response_data['data'][ 'UserInfo']['avatar'] == avatar
def get_config_page_id(self): # id需要在config接口中返回 timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"os_type": 1,' \ '"app_key":"%(app_key)s",' \ '"os_version":"9",' \ '"carrier":3,' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"imei":"869384032108431",' \ '"latitude":34.223866,' \ '"gcid":"dba9f3c2e8926564d3c930790c232bcf",' \ '"bssid":"4c:e9:e4:7d:41:c1",' \ '"longitude":108.909907,' \ '"installation_id":1904301718321742,' \ '"force_reload_user":true,' \ '"app_version":"%(version)s",' \ '"timeStamp":%(timeStamp)d}' % { 'app_key': app_key, 'timeStamp': timeStamp, 'version': version} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=baseurl + "/cms/v1.2/config", data=json.dumps(form), headers=headers) return RunMain().decrypt_to_dict(response, 'c_p')['pages'][0]['pages'][0]['id']
def test_01_epg_list(self): """正确的请求参数""" stream_id = mysql.select_one('select id FROM stream where title = "CCTV1";')["id"] date_list = self.get_date_list() timeStamp = int(time.mktime(datetime.datetime.now().timetuple())) data = '{"stream_id":%(stream_id)d,' \ '"date":["%(date_3)s","%(date_2)s","%(date_1)s","%(date_0)s","%(date_4)s"],' \ '"os_type":1,' \ '"app_version":"%(version)s",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"}' % { 'date_3': date_list[0], 'date_2': date_list[1], 'date_1': date_list[2], 'date_0': date_list[3], 'date_4': date_list[4], 'stream_id': stream_id, 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=self.url, data=json.dumps(form), headers=headers) actual_id = self.get_response_stream_id(response) msg = "CCTV1电视台返回的id应该是{0},实际是{1}".format(stream_id, actual_id) self.assertEqual(stream_id, actual_id, msg)
def tycoon_detail(self, params, param): timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"app_version":"%(version)s",' \ '"installation_id":1904301718321742,' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s", ' \ '"os_version":"9",' \ '"mac_address":"02:00:00:00:00:00",' \ '"device_id":"802ca0fba119ab0a",' \ '"os_type":1,' \ '"%(key)s":%(id)d}' % { 'version': version, 'key': param, 'id': params[param], 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=self.url, data=json.dumps(form), headers=headers) if type(params.values()) != type("a"): if list(params.values())[0] < 1000000000: acturl_tycoon_name = RunMain().decrypt_to_dict(response, 'r')["name"] msg = "大咖详情接口返回的大咖-{0}信息错误".format(tycoon_name["name"]) self.assertEqual(tycoon_name["name"], acturl_tycoon_name, msg) else: self.assertEqual(400, response.status_code, "参数错误,接口应返回400") self.assertEqual(500, response.json()["err_code"], "参数错误,接口应返回err_code500")
def login(self, timeStamp): '''获取登录接口的token''' url = baseurl + '/ims/v1.0/user/login' data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"open_id":"%(telephone)s",' \ '"provider":1,' \ '"app_key":"%(app_key)s",' \ '"device_id":"802ca0fba119ab0a",' \ '"country_code":"+86",' \ '"installation_id":1904301718321742,' \ '"longitude":108.90823353286173,' \ '"latitude":34.21936825217505,' \ '}' % { 'version': version, 'app_key': app_key, 'access_token': self.access_token, 'timeStamp': timeStamp, 'telephone': telephone} data = get_Sign().encrypt(data) response = requests.post(url, data=json.dumps(data), headers=self.headers()) return response
def test_01_videopackage_detail(self): """正确的会员套餐视频包详情参数""" time.sleep(1) timeStamp = int(time.mktime(datetime.now().timetuple())) data = '{"os_version":"9",' \ '"imei":"869384032108431",' \ '"latitude":34.223866,' \ '"longitude":108.909907,' \ '"gcid":"dba9f3c2e8926564d3c930790c232bcf",' \ '"bssid":"70:57:bf:90:52:f1",' \ '"device_id":"802ca0fba119ab0a",' \ '"installation_id":1904301718321742,' \ '"mac_address":"02:00:00:00:00:00",'\ '"channel":"dopool",' \ '"id":[1],' \ '"os_type":1,' \ '"app_version":"%(version)s",' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"}' % { 'id': self.id, 'version': version, 'timeStamp': timeStamp, 'app_key': app_key} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign":"%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(url=self.url, data=json.dumps(form), headers=headers) response_data = self.decrypt_to_dict(response, 1, -1) assert response_data["description"] == "会员专享,老的VIP用户升级专用"
def test_login_01(self): '''正确的参数''' timeStamp = int(time.mktime(datetime.now().timetuple())) access_token = md5.encrypt_md5(timeStamp) data = '{"app_version":"%(version)s",' \ '"access_token":"%(access_token)s",' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"open_id":"%(telephone)s",' \ '"provider":1,' \ '"app_key":"%(app_key)s",' \ '"device_id":"802ca0fba119ab0a",' \ '"country_code":"+86",' \ '"installation_id":1904301718321742,' \ '"longitude":108.90823353286173,' \ '"latitude":34.21936825217505,' \ '}' % { 'version': version, 'app_key': app_key, 'access_token': access_token, 'timeStamp': timeStamp, 'telephone': telephone} data = get_Sign().encrypt(data) response = requests.post(self.url, data=json.dumps(data), headers=headers) self.assertTrue("Bearer" in response.json()["data"]["token"], "login接口返回的token中包含Bearer")
def get_url_params(self): # order_id 必填, 订单id data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"order_id":116592,' \ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'app_key': app_key} data = get_Sign().encrypt(data) return RunMain().get_url_params(data, self.url)
def get_url_params(self): timeStamp = int(time.mktime(datetime.now().timetuple())) # category_id 必填 data = '{"os_type":1,'\ '"os_version":9,'\ '"app_version":"%(version)s",' \ '"category_id":1,' \ '"timestamp":%(timeStamp)d,' \ '"app_key":"%(app_key)s"' \ '}' % { 'version': version, 'app_key': app_key, 'timeStamp': timeStamp} data = get_Sign().encrypt(data) return RunMain().get_url_params(data, self.url)
def test_dotlist_03(self): """股票代码参数值为空""" data = '{"app_version":"%(version)s",' \ '"os_type":1,' \ '"app_key":"xdThhy2239daax",' \ '"installation_id":1904301718321742' \ '}' % { 'version': version} sign = get_Sign().encrypt(data, True)["sign"] data = data.replace('}', ',"sign": "%s"}' % sign) crypt_data = aes.encrypt(data, 'c_q') form = {"data": crypt_data, "encode": "v1"} response = requests.post(self.url, data=json.dumps(form), headers=headers) assert response.status_code == 400
def get_url_params(self): timeStamp = int(time.mktime(datetime.now().timetuple())) url_params = '{"app_version":"%(version)s",' \ '"app_key":"%(app_key)s", ' \ '"os_type":1,' \ '"timestamp":%(timeStamp)d,' \ '"installation_id": 1904301718321742,' \ '"os_version": "9",' \ '"latitude": 34.230261,' \ '"mac_address": "02:00:00:00:00:00",' \ '"longitude": 108.872503,' \ '"device_id": "802ca0fba119ab0a"}' % { 'version': version, 'app_key': app_key, 'timeStamp': timeStamp} params = get_Sign().encrypt(url_params) return RunMain().get_url_params(params, self.url)