#!/usr/bin/env python # -*- coding: utf-8 -*- import unittest import requests from data_fixture.config_data import HOST_BOSS, HOST_STA from data_fixture import create_testdata as CreateTestData from data_fixture import config_data as Data from data_fixture.mysql_db import DB import time from datetime import date db_test = DB() #提交app使用记录 class AppRecordSave(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/save' def tearDown(self): print(self.result) def test_AppRecordSave_success(self): headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': '*/*'} postData = {'appName': '学科同步', 'appPid': 'com.hjx.synsubject', 'timeSpent': 1088, 'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND} send_time = str(time.time()).split('.')[0] r = requests.post(self.base_url, headers=headers, data=postData) self.result = r.json() self.assertEqual(self.result['status'], 1, 'test_AppRecordSave_success Error') where = {'app_name': '学科同步', 'app_pid': 'com.hjx.synsubject', 'time_spent': 1088, 'user_id': Data.USER_ID, 'device_number': Data.DEVICE_NUMBER_CUS_BIND} where_2 = " time_end >= {} ".format(send_time) self.assertTrue(db_test.select_('analytics.app_record', where, where_2) >= 1, 'test_AppRecordSave_success data Error') # 按时间段获取app使用统计 class AppRecordStats(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/stats' now = int(str(time.time()).split('.')[0]) CreateTestData.create_app_use_record(now, Data.USER_ID, Data.DEVICE_NUMBER_CUS_BIND) def tearDown(self): pass def test_getAppRecordStats_all_success(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'type': 'all'} r = requests.get(self.base_url, params=getData) self.result_1 = r.json() self.assertEqual(self.result_1['status'], 1, 'test_getAppRecordStats_all_success Error') self.assertTrue(self.result_1['data']['gameTime'] > 0) self.assertTrue(self.result_1['data']['studyTime'] > 0) def test_getAppRecordStats_year_success(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'type': 'year'} r = requests.get(self.base_url, params=getData) self.result_2 = r.json() self.assertEqual(self.result_2['status'], 1, 'test_getAppRecordStats_year_success Error') self.assertTrue(self.result_2['data']['gameTime'] > 0) self.assertTrue(self.result_2['data']['studyTime'] > 0) def test_getAppRecordStats_month_success(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'type': 'month'} r = requests.get(self.base_url, params=getData) self.result_3 = r.json() self.assertEqual(self.result_3['status'], 1, 'test_getAppRecordStats_month_success Error') self.assertTrue(self.result_3['data']['gameTime'] > 0) self.assertTrue(self.result_3['data']['studyTime'] > 0) def test_getAppRecordStats_week_success(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'type': 'week'} r = requests.get(self.base_url, params=getData) self.result_4 = r.json() self.assertEqual(self.result_4['status'], 1, 'test_getAppRecordStats_week_success Error') self.assertTrue(self.result_4['data']['gameTime'] > 0) self.assertTrue(self.result_4['data']['studyTime'] > 0) # 获取应用统计top排名 class AppRecordTop(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/top' now = int(str(time.time()).split('.')[0]) CreateTestData.create_app_use_record(now, Data.USER_ID, Data.DEVICE_NUMBER_CUS_BIND) def tearDown(self): pass def test_getAppRecordTop_hjx(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'type': 'hjx'} r = requests.get(self.base_url, params=getData) self.result_1 = r.json() self.assertEqual(self.result_1['status'], 1, 'test_getAppRecordTop_hjx Error') self.assertTrue(len(self.result_1['data']) > 0) def test_getAppRecordTop_other(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'type': 'other'} r = requests.get(self.base_url, params=getData) self.result_2 = r.json() self.assertEqual(self.result_2['status'], 1, 'test_getAppRecordTop_other Error') self.assertTrue(len(self.result_2['data']) > 0) # 获取某一天的app统计 class AppRecordOneday(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/oneday' self.now = int(str(time.time()).split('.')[0]) CreateTestData.create_app_use_record(self.now, Data.USER_ID, Data.DEVICE_NUMBER_CUS_BIND) def tearDown(self): pass def test_getAppRecordOneday_success(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'dayTimestamp': str(time.mktime(date.today().timetuple())).split('.')[0]} pageNum = 1 appRecord = [] while True: getData.update({'pageNum':pageNum}) r = requests.get(self.base_url, params=getData) self.result = r.json() appRecord = appRecord + self.result['data'] if len(self.result['data']) == 0: break pageNum += 1 self.result_1 = r.json() self.assertTrue(len(appRecord) == 24) app_name = appRecord[0]['appName'] time_spent = appRecord[0]['timeSpentTotal'] time_end = appRecord[0]['latestTimeEnd'] source_id = appRecord[0]['sourceId'] category_id = appRecord[0]['categoryId'] categoryType = appRecord[0]['categoryType'] study_category = [25,26,27,28,57] game_category = [37,38,39,100] where_1 = {'app_name':app_name, 'time_spent':time_spent, 'time_end': time_end, 'source_id':source_id, 'category_id':category_id, 'user_id': Data.USER_ID, 'device_number': Data.DEVICE_NUMBER_CUS_BIND } self.assertEqual(db_test.select_('analytics.app_record', where_1) , 1) if category_id in study_category: self.assertEqual(categoryType, 1) if category_id in game_category: self.assertEqual(categoryType, 2) # 获取几天的app统计 class AppRecordEveryday(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/everyday' self.now = int(str(time.time()).split('.')[0]) # CreateTestData.create_app_use_record(self.now, Data.USER_ID, Data.DEVICE_NUMBER_CUS_BIND) CreateTestData.create_app_use_record(self.now, '7000000054686780', '123456789002') def tearDown(self): pass def test_getAppRecordEveryday_success(self): # getData = {'userId': Data.USER_ID, # 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, # 'pageNum': 1, # 'pageSize': 7} getData = {'userId': '7000000054686780', 'deviceNumber': '123456789002', 'pageNum': 1, 'pageSize': 7} r = requests.get(self.base_url, params=getData) self.result = r.json() self.assertEqual(self.result['status'], 1, 'test_getAppRecordEveryday_success Error') self.assertEqual(self.result['data'][0]['gameTimeSpent'], 2550) self.assertEqual(self.result['data'][0]['studyTimeSpent'], 3150) # 获取当天的app统计 class AppRecordToday(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/today' self.now = int(str(time.time()).split('.')[0]) CreateTestData.create_app_use_record(self.now, Data.USER_ID, Data.DEVICE_NUMBER_CUS_BIND) def tearDown(self): pass def test_AppRecordToday_success(self): getData = {'userId': Data.USER_ID, 'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND} r = requests.get(self.base_url, params=getData) self.result = r.json() self.assertEqual(self.result['status'], 1, 'AppRecordToday Error') self.assertEqual(self.result['data']['gameTimeSpent'], 2550) self.assertEqual(self.result['data']['studyTimeSpent'], 3150) #重置数据接口 class AppRecordReset(unittest.TestCase): def setUp(self): self.base_url = HOST_STA + '/app/record/reset' # create elec card , to get mobile phpne self.password = CreateTestData.get_parentSpace_password(Data.DEVICE_NUMBER_CUS_BIND) now = int(str(time.time()).split('.')[0]) CreateTestData.create_app_use_record(now, Data.USER_ID, Data.DEVICE_NUMBER_CUS_BIND) def tearDown(self): pass def test_AppRecordReset_success(self): getData = {'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'password': self.password, 'userId': Data.USER_ID } r = requests.post(self.base_url, data=getData) self.result = r.json() self.assertEqual(self.result['status'], 1, 'test_AppRecordReset_success Error') where = {'device_number': Data.DEVICE_NUMBER_CUS_BIND, 'user_id': Data.USER_ID } self.assertEqual(db_test.select_('analytics.app_record', where), 0) def test_AppRecordReset_passwordError(self): getData = {'deviceNumber': Data.DEVICE_NUMBER_CUS_BIND, 'userId': Data.USER_ID, 'password': self.password + '111' } r = requests.post(self.base_url, data=getData) self.result_2 = r.json() self.assertEqual(self.result_2['status'], 1005, 'test_AppRecordReset_passwordError Error')