Пример #1
0
def run():
	def resolution(string):
		p = string.split('x')
		if len(p) != 2:
			raise argparse.ArgumentTypeError('not a valid resolution')
		try:
			p[0] = int(p[0])
			p[1] = int(p[1])
		except:
			raise argparse.ArgumentTypeError('not a valid resolution')
		return tuple(p)
	
	parser = argparse.ArgumentParser(description='Yamosg Client')
	parser.add_argument('-u', '--username', default='foo')
	parser.add_argument('-p', '--password', default='bar')
	parser.add_argument('-r', '--resolution', type=resolution, default=(800,600))
	parser.add_argument('-c', '--logconfig', default=resources.realpath('client.conf'))
	parser.add_argument('host', metavar='HOST', nargs='?', default='localhost')
	parser.add_argument('port', metavar='PORT', nargs='?', type=int, default='1234')

	args = parser.parse_args()

	if os.path.exists(args.logconfig):
		print args.logconfig
		logging.config.fileConfig(args.logconfig)
	else:
		print >> sys.stderr, 'logconfig', args.logconfig, 'not found, logging disabled'

	log = Log()
	log.info('Yamosg starting (%s)', pf.system())
	pygame.display.init()
	
	client = Client(args.resolution, args.host, args.port, args.username, args.password)
	signal(SIGINT, quit)

	# create "superglobal" access to the client- and game instances
	__builtins__['client'] = client
	__builtins__['game'] = client._game # hack

	client.run()
	log.info('Yamosg stopping')
Пример #2
0
	def __init__(self, resolution, host, port, username, password, split="\n"):
		global network_log
		
		self.log = Log('client')
		network_log = Log('network')

		# must have at least one handler
		self.log.logger.addHandler(logging.NullHandler())
		network_log.logger.addHandler(logging.NullHandler())
		
		# opengl must be initialized first
		self.log.info("Initializing display (windowed at %(resolution)s)", dict(resolution='%dx%d'%resolution))
		self._screen = pygame.display.set_mode(resolution, OPENGL|DOUBLEBUF)
		pygame.display.set_caption('yamosg')

		self.log.debug("OpenGL setup (version=\"%(version)s\", vendor=\"%(vendor)s\")", dict(version=glGetString(GL_VERSION), vendor=glGetString(GL_VENDOR)))
		setup_opengl()

		Client.cursor_default = pygame.cursors.arrow
		Client.cursor_capture = pygame.cursors.diamond
		
		self._resolution = Vector2i(resolution)
		self._username = username
		self._password = password
		self._split = split
		self._running = False
		self._state = StateManager()
		self._game = GameWidget(self, self._resolution)
		self._container = Composite(Vector2i(0,0), self._resolution, children=[self._game])
		self._toolbar = Toolbar(self._game)
		self._window = VBox()
		self._window.add(self._toolbar, size=LayoutAttachment(Vector2i(1,0), Vector2i(0,25)))
		self._window.add(self._container)
		self._state.push(GameState(self._resolution, self._window))
		self._network = Network(self, host, port)
		self._command_store = {}
		self._command_queue = []
		self._command_lock = threading.Lock()
		self._playerid = None
		self._players = {}
		self._capture_position = None
		self._timer = 0

		# resizing must be done after state has been created so the event is propagated proper.
		self._resize(self._resolution)
Пример #3
0
class Blog():
    log = Log()

    def login(self):
        url = 'http://sps.cecook.net/login/ajaxLogin'
 def setUpClass(cls) -> None:
     cls.log = Log()
     cls.data = memberGroupList().test_data
Пример #5
0
class Feed(unittest.TestCase):
    def setUp(self):
        self.s = requests.session()
        self.auto_login_token = auto_login_by_UID()  #auto_login_by_UID返回的token
        self.header = {
            'User-Agent':
            'PelvicFloorPersonal/4.1.1 (iPad; iOS 10.1.1; Scale/2.00)',
            'Accept-Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-Hans-CN;q=1',
            'Content-Type': 'application/json',
            'requestApp': '2',
            'requestclient': '2',
            'versionForApp': '4.1.1',
            'Authorization':
            'Basic YXBpTGFudGluZ0BtZWRsYW5kZXIuY29tOkFwaVRobWxkTWxkQDIwMTM=',
            'Connection': 'keep-alive'
        }
        self.log = Log()
        self.excel = Excel_util(
            r'C:\Users\Administrator\Desktop\Interface_testcase.xls')

    def test_collect01(self):
        u'测试收藏接口'
        #读取关联参数-用户的动态的id,再循环去收藏,断言结果
        self.log.info('开始测试收藏动态接口!')
        url = get_content('sns_base_url') + '/v1/collect/add'
        read_feed_ids = self.excel.read_value(12, 6)
        feed_ids = json.loads(read_feed_ids)
        #print(type(feed_ids))
        #迭代字典的value
        for x in feed_ids.values():
            json_data = {"id": x, "token": self.auto_login_token}
            r = self.s.post(url, headers=self.header, json=json_data)
            self.log.info('返回的内容是:%s' % r.json())
            self.assertEqual(200, r.json()['code'])
            self.assertEqual('收藏成功.', r.json()['note'])

        self.log.info('收藏动态接口测试结束!\n')

    def test_collect02(self):
        u'测试取消收藏接口'
        self.log.info('开始测试取消收藏动态接口!')
        url = get_content('sns_base_url') + '/v1/collect/delete'
        read_feed_ids = self.excel.read_value(12, 6)
        feed_ids = json.loads(read_feed_ids)
        #print(type(feed_ids))
        #迭代字典的value
        for x in feed_ids.values():
            json_data = {"id": x, "token": self.auto_login_token}
            r = self.s.post(url, headers=self.header, json=json_data)
            self.log.info('取消收藏返回的内容是:%s' % r.json())
            self.assertEqual(200, r.json()['code'])
            self.assertEqual('取消收藏成功.', r.json()['note'])

        self.log.info('取消收藏动态接口测试结束!\n')

    def tearDown(self):
        self.s.close()
Пример #6
0
 def tests_s(self):  #流程测试s合同
     u'''即有宝流程测试s合同'''
     # textval = MysqlUtil().mysql_getstring("SELECT t.con_name FROM (SELECT * FROM mobiletest_mobiledata WHERE con_name LIKE '%s%%' ORDER BY create_time DESC) t LIMIT 1"%con_name)  #流程测试s合同
     textvall = getyaml(PATH("..\config\yaml\jyb\dim.yaml")).get(
         'name')  #流程测试s合同
     Log().info("名称:%s" % textvall)  #流程测试s合同
     com = appclass(self.driver, self.cpath)  #流程测试s合同
     for a in range(54, 67):  #流程测试s合同
         com.elm_operate(a, "")  #流程测试s合同
     com.swipeup()  #流程测试s合同
     com.elm_operate(67, "")  #流程测试s合同
     time.sleep(4)  #流程测试s合同
     com.checkItem("单位信息", "基本信息页下一步保存")  #流程测试s合同
     for b in range(68, 77):  #流程测试s合同
         com.elm_operate(b, "")  #流程测试s合同
     com.swipeup()  #流程测试s合同
     for v in range(77, 82):  #流程测试s合同
         com.elm_operate(v, "")  #流程测试s合同
     time.sleep(4)  #流程测试s合同
     com.checkItem("联系人", "单位信息页下一步保存")  #流程测试s合同
     #-----Begin----填写联系人信息 --20181015 chenjingxu  #流程测试s合同
     #填写文本框内容 #流程测试s合同
     Log().info("开始填写联系人信息")  #流程测试s合同
     HF = "未婚"  #流程测试s合同
     com3 = appclass(self.driver,
                     PATH("..\config\yaml\jyb\jybcase2.yaml"))  #流程测试s合同
     #填写姓名和手机号  #流程测试s合同
     if HF == "已婚":  #流程测试s合同
         for h in range(0, 7):  #流程测试s合同
             com3.elm_operate(h, "")  #流程测试s合同
     else:  #流程测试s合同
         for h in range(0, 5):  #流程测试s合同
             com3.elm_operate(h, "")  #流程测试s合同
     #选择与本人关系  #流程测试s合同
     r = 0  #流程测试s合同
     for s in range(9, 11):  #流程测试s合同
         lis = [12, 48]  #流程测试s合同
         com3.elm_operate(s, "")  #流程测试s合同
         print("没有点击打开弹窗")  #流程测试s合同
         time.sleep(0.5)  #流程测试s合同
         com3.elm_operate(lis[r], "")  #流程测试s合同
         r = r + 1  #流程测试s合同
     #提交  #流程测试s合同
     com3.elm_operate(13, "")  #流程测试s合同
     Log().info("恭喜,填写联系人信息成功!!!")  #流程测试s合同
     #第一步 填写银行卡号 #流程测试s合同
     self.driver.activate_ime_engine(
         "com.sohu.inputmethod.sogou.xiaomi/.SogouIME")  #流程测试s合同
     com3.elm_operate(21, "")  #流程测试s合同
     self.driver.activate_ime_engine(
         "io.appium.android.ime/.UnicodeIME")  #流程测试s合同
     com3.elm_operate(52, "")  #流程测试s合同
     com3.elm_operate(53, "")  #流程测试s合同
     time.sleep(3)  #流程测试s合同
     MysqlUtiltwo().mysql_execute(
         "INSERT INTO credit_bankcard_four (`name`,bank_card,mobile,id_number,check_result,check_msg,sp_code,create_time,service_id,extra) VALUES ('%s','6228481359515816576','13300000000','511000198506020031','2000','全匹配','BAIRONG',NOW(),'10000',NULL)"
         % textvall)  #流程测试s合同
     time.sleep(2)  #流程测试s合同
     com3.elm_operate(55, "")  #流程测试s合同
     time.sleep(2)  #流程测试s合同
     send_codee = MysqlUtiltwo().mysql_getstring(
         "SELECT t.sms_code  FROM (SELECT * FROM sms_verify_info WHERE phone = '%s' ORDER BY sent_time DESC) t  LIMIT 1"
         % mobilephone)  #流程测试s合同
     print(send_codee)  #流程测试s合同
     time.sleep(10)  #流程测试s合同
     c = getyaml(PATH("..\config\yaml\jyb\dim.yaml")).get('name')  #流程测试s合同
     if c.startswith('测试'):  #流程测试s合同
         com3.elm_operate(54, "123456")  #流程测试s合同
     else:  #流程测试s合同
         com3.elm_operate(54, send_codee)  #流程测试s合同
     com3.elm_operate(15, "")  #流程测试s合同
     com3.checkItem("其他信息", "绑定银行卡页保存")  #流程测试s合同
     #------------------------------------断 #流程测试s合同
     #进入其他信息页  #流程测试s合同
     com3.elm_operate(32, "")  #流程测试s合同
     com3.elm_operate(33, "")  #流程测试s合同
     com3.elm_operate(34, "")  #流程测试s合同
     com3.elm_operate(15, "")  #流程测试s合同
     time.sleep(1)  #流程测试s合同
     com3.checkItem("授权", "其他信息页保存")  #流程测试s合同
     #跳过授权 #流程测试s合同
     com3.elm_operate(15, "")  #流程测试s合同
     com3.checkItem("小问卷", "跳过授权保存")  #流程测试s合同
     #小问卷 #流程测试s合同
     # com3.elm_operate(36, "")  #流程测试s合同
     com3.elm_operate(37, "")  #流程测试s合同
     com3.elm_operate(51, "")  #流程测试s合同
     com3.checkItem("影像证明", "小问卷保存")  #流程测试s合同
     #上传影像证明 #流程测试s合同
     com3.swipedown()  #流程测试s合同
     com3.elm_operate(38, "")  #流程测试s合同
     com3.elm_operate(39, "")  #流程测试s合同
     com3.elm_operate(40, "")  #流程测试s合同
     time.sleep(2)  #流程测试s合同
     self.driver.wait_activity(
         "com.giveu.corder.ordercreate.activity.PhotoCertificateActivity",
         20, 1)  #流程测试s合同
     com3.swipeup()  #流程测试s合同
     com3.elm_operate(41, "")  #提交 #流程测试s合同
     com3.elm_operate(42, "")  #流程测试s合同
     com3.elm_operate(43, "")  #流程测试s合同
     time.sleep(2)  #流程测试s合同
     sta = MysqlUtil().mysql_getstring(
         "SELECT  con_status FROM  mobiletest_mobiledata WHERE con_name ='%s'"
         % textvall)  #流程测试s合同
     if com3.findItem("成功提交") and sta == 'r':  #流程测试s合同
         Log().info("即有宝S合同生成成功")  #流程测试s合同
         MysqlUtil().mysql_execute(
             "UPDATE mobiletest_mobiledata SET con_status='s' WHERE con_name='%s'"
             % textvall)  #流程测试s合同
     else:  #流程测试s合同
         Log().info("即有宝S合同生成失败")  #流程测试s合同
Пример #7
0
class YongHu(unittest.TestCase):
    log = Log()

    @classmethod
    def setUpClass(cls):
        cls.driver = browser()
        cls.YH = Yonghu(cls.driver)
        cls.YH.open(login_url, u'登录')
        cls.driver.implicitly_wait(5)
        Global_function.login(cls)
        cls.YH.assertion_test1()
        cls.YH.assertion_test2()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_YHGL1(self):
        '''创建用户'''
        '''

        :创建用户
        :return: 
        '''
        self.log.info('------创建用户:start!---------')
        data = self.YH.assertion_test3()
        try:
            data1 = int(data[11]) + 1
        except:
            Data2 = data[12:14]
            data2 = int(Data2) + 1
        self.YH.assertion_test4(read_Data.getExcel2(testData, 0),
                                read_Data.getExcel2(testData, 0))
        data3 = self.YH.assertion_test3()
        try:
            data31 = int(data3[11])
            self.assertEqual(data1, data31)
        except:
            Data3 = int(data3[12:14])
            self.assertEqual(Data3, data2)
        self.log.info('------创建用户:stop!---------')

    def test_YHGL2(self):
        '''用户详情'''
        '''

        :用户详情
        :return: 
        '''
        self.log.info('------查看用户详情:start!---------')
        self.YH.assertion_test5()
        self.assertEqual(self.YH.assertion_test6(), read_Data.getExcel2(4, 6))
        self.YH.assertion_test10()
        self.log.info('------查看用户详情:stop!---------')

    def test_YHGL3(self):
        '''编辑用户'''
        '''

        :编辑用户
        :return: 
        '''
        self.log.info('------编辑用户:start!---------')
        self.YH.assertion_test7(read_Data.getExcel2(testData, 1))
        self.assertEqual(self.YH.assertion_test11(),
                         read_Data.getExcel2(testData, 1))
        self.log.info('------编辑用户:stop!---------')

    def test_YHGL4(self):
        '''重置密码'''
        '''

        :重置密码
        :return: 
        '''
        self.log.info('------重置密码:start!---------')
        self.YH.assertion_test8()
        print(self.YH.assertion_test12())
        self.log.info('------重置密码:stop!---------')

    def test_YHGL5(self):
        '''冻结用户'''
        '''

        :冻结用户
        :return: 
        '''
        self.log.info('------冻结用户:start!---------')
        data = self.YH.assertion_test12()
        if data == read_Data.getExcel2(6, 6):
            self.YH.assertion_test9()
        else:
            self.YH.assertion_test9()
            self.YH.assertion_test9()
        self.assertEqual(self.YH.assertion_test12(), read_Data.getExcel2(5, 6))
        self.log.info('------冻结用户:stop!---------')

    def test_YHGL6(self):
        '''激活用户'''
        '''

        :激活用户
        :return: 
        '''
        self.log.info('------激活用户:start!---------')
        data = self.YH.assertion_test12()
        if data == read_Data.getExcel2(5, 6):
            self.YH.assertion_test9()
        else:
            self.YH.assertion_test9()
            self.YH.assertion_test9()
        self.assertEqual(self.YH.assertion_test12(), read_Data.getExcel2(6, 6))
        self.log.info('------激活用户:stop!---------')
Пример #8
0
class Recommend(unittest.TestCase):
    def setUp(self):
        self.s = requests.session()
        self.auto_login_token = auto_login_by_UID()  #auto_login_by_UID返回的token
        self.header = {'User-Agent': 'PelvicFloorPersonal/4.1.1 (iPad; iOS 10.1.1; Scale/2.00)',
                       'Accept-Encoding': 'gzip, deflate',
                       'Accept-Language': 'zh-Hans-CN;q=1',
                       'Content-Type': 'application/json',
                       'requestApp': '2',
                       'requestclient': '2',
                       'versionForApp': '4.1.1',
                       'Authorization': 'Basic YXBpTGFudGluZ0BtZWRsYW5kZXIuY29tOkFwaVRobWxkTWxkQDIwMTM=',
                       'Connection': 'keep-alive'
                       }
        self.log = Log()
        self.excel = Excel_util(r'C:\Users\Administrator\Desktop\Interface_testcase.xls')

    def test_recommend(self):
        u'推荐内容接口-参数正常'
        self.log.info('测试推荐内容接口-参数正常')
        url = get_content('sns_base_url')+'/v1/recommend/content'
        json_data = {
            "token":self.auto_login_token,
            "time":0,
            "page":1
        }
        r = self.s.post(url,headers = self.header,json=json_data)
        self.log.info('返回的内容是:%s' % r.json())
        con = r.json()['data']['content']
        d = {}
        n = 1
        for i in con:
            d['feed_id_'+str(n)] = i['id']
            n += 1
        self.excel.write_value(13,6,d)
        self.assertEqual(200,r.json()['code'])
        self.assertEqual('请求成功',r.json()['note'])
        self.assertTrue(r.json()['data']) #判断data不为空
        self.log.info('测试推荐内容接口-参数正常情况测试结束!\n')

    def test_recommend2(self):
        u'推荐内容接口-无token'
        self.log.info('测试推荐内容接口-无token')
        url = get_content('sns_base_url')+'/v1/recommend/content'
        json_data = {
            #"token":self.auto_login_token,
            "time":0,
            "page":1
        }
        r = self.s.post(url,headers = self.header,json=json_data)
        self.log.info('返回的内容是:%s' % r.json())
        self.assertEqual(200,r.json()['code'])
        self.assertEqual('请求成功',r.json()['note'])
        self.assertTrue(r.json()['data']) #判断data不为空
        self.log.info('测试推荐内容接口-无token情况测试结束!\n')

    def test_recommend_user(self):
        u'推荐用户接口-参数正常'
        self.log.info('测试推荐用户接口-参数正常')
        url = get_content('sns_base_url')+'/v1/recommend/user'
        json_data = {
            "token":self.auto_login_token,
            "time":0,
            "page":1
        }
        r = self.s.post(url,headers = self.header,json=json_data)
        self.log.info('返回的内容是:%s' % r.json())
        self.assertEqual(200,r.json()['code'])
        self.assertEqual('请求成功',r.json()['note'])
        self.assertTrue(r.json()['data'])
        self.log.info('测试推荐用户接口-参数正常情况测试结束!\n')

    def test_recommend_user2(self):
        u'推荐用户接口-无token'
        self.log.info('测试推荐用户接口-无token')
        url = get_content('sns_base_url')+'/v1/recommend/user'
        json_data = {
            #"token":self.auto_login_token,
            "time":0,
            "page":1
        }
        r = self.s.post(url,headers = self.header,json=json_data)
        self.log.info('返回的内容是:%s' % r.json())
        self.assertEqual(200,r.json()['code'])
        self.assertEqual('请求成功',r.json()['note'])
        self.assertTrue(r.json()['data'])
        self.log.info('测试推荐用户接口-无token情况测试结束!\n')


    def tearDown(self):
        self.s.close()
Пример #9
0
 def setUpClass(cls):
     cls.drever = webdriver.Chrome()
     cls.drever.maximize_window()
     cls.a = Zendao_Login(cls.drever)
     cls.b = Add_bug(cls.drever)
     cls.log = Log()
Пример #10
0
class JiChu4(unittest.TestCase):
    log = Log()

    @classmethod
    def setUpClass(cls):
        cls.driver = browser()
        cls.JC = Jichu(cls.driver)
        cls.JC.open(login_url, u'登录')
        cls.driver.implicitly_wait(5)
        Global_function.login(cls)
        cls.JC.assertion_test1()
        cls.JC.assertion_test2()
        cls.JC.assertion_test23()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    '''
        库区类别管理
    '''

    def test_kqlb1(self):
        '''新增库区类别'''
        '''

        :新增库区类别
        :return: 
        '''
        self.log.info('------新增库区类别:start!---------')
        data = self.JC.assertion_test8()
        try:
            data1 = int(data[11]) + 1
        except:
            Data2 = data[12:14]
            data2 = int(Data2) + 1
        self.JC.assertion_test24(read_Data.getExcel2(testData, 0),
                                 read_Data.getExcel2(testData, 1))
        data3 = self.JC.assertion_test8()
        try:
            data31 = int(data3[11])
            self.assertEqual(data1, data31)
        except:
            Data3 = int(data3[12:14])
            self.assertEqual(Data3, data2)
        self.log.info('------新增库区类别:stop!---------')

    def test_kqlb2(self):
        '''编辑库区类别'''
        '''

        :编辑库区类别
        :return: 
        '''
        self.log.info('------编辑库区类别:start!---------')
        self.JC.assertion_test27(read_Data.getExcel2(testData, 0),
                                 read_Data.getExcel2(testData, 1))
        #self.assertEqual(self.JC.assertion_test25(), read_Data.getExcel2(testData1, 2))
        self.log.info('------编辑库区类别:stop!---------')

    def test_kqlb3(self):
        '''禁用库区类别'''
        '''

        :禁用库区类别
        :return: 
        '''
        self.log.info('------禁用库区类别:start!---------')
        data = self.JC.assertion_test26()
        if data == read_Data.getExcel2(12, 6):
            self.JC.assertion_test28()
        else:
            self.JC.assertion_test28()
            self.JC.assertion_test28()
        self.assertEqual(self.JC.assertion_test26(),
                         read_Data.getExcel2(11, 6))
        self.log.info('------禁用库区类别:stop!---------')

    def test_kqlb4(self):
        '''启用库区类别'''
        '''

        :启用库区类别
        :return: 
        '''
        self.log.info('------启用库区类别:start!---------')
        data = self.JC.assertion_test26()
        if data == read_Data.getExcel2(11, 6):
            self.JC.assertion_test28()
        else:
            self.JC.assertion_test28()
            self.JC.assertion_test28()
        self.assertEqual(self.JC.assertion_test26(),
                         read_Data.getExcel2(12, 6))
        self.log.info('------启用库区类别:stop!---------')
Пример #11
0
 def setUpClass(cls):
     cls.driver=webdriver.Remote('http://127.0.0.1:%s/wd/hub' % desired_caps[0], desired_caps[1])
     cls.base=BaseApp(cls.driver)
     cls.log=Log()
Пример #12
0
class JiChu1(unittest.TestCase):
    log = Log()

    @classmethod
    def setUpClass(cls):
        cls.driver = browser()
        cls.JC = Jichu(cls.driver)
        cls.JC.open(login_url, u'登录')
        cls.driver.implicitly_wait(5)
        Global_function.login(cls)
        cls.JC.assertion_test1()
        cls.JC.assertion_test2()
        cls.JC.assertion_test10()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    '''
    货品类别设置
    '''

    def test_hp1(self):
        '''添加货品类别'''
        '''

        :添加货品类别
        :return: 
        '''
        self.log.info('------添加货品类别:start!---------')
        data = self.JC.assertion_test8()
        try:
            data1 = int(data[11]) + 1
        except:
            Data2 = data[12:14]
            data2 = int(Data2) + 1
        self.JC.assertion_test3(read_Data.getExcel2(testData, 0),
                                read_Data.getExcel2(testData, 1))
        data3 = self.JC.assertion_test8()
        try:
            data31 = int(data3[11])
            self.assertEqual(data1, data31)
        except:
            Data3 = int(data3[12:14])
            self.assertEqual(Data3, data2)
        self.log.info('------添加货品类别:stop!---------')

    def test_hp2(self):
        '''编辑货品类别'''
        '''

        :编辑货品类别
        :return: 
        '''
        self.log.info('------编辑货品类别:start!---------')
        #data=self.JC.assertion_test9()
        self.JC.assertion_test4(read_Data.getExcel2(testData, 0),
                                read_Data.getExcel2(testData, 1))
        # if self.JC.assertion_test9()==data:
        #     print u'货品类别编辑失败'
        # elif self.JC.assertion_test9()==read_Data.getExcel2(testData1,1):
        #     self.assertEqual(self.JC.assertion_test9(),read_Data.getExcel2(testData1,1))
        # else:
        #     self.assertNotEqual(self.JC.assertion_test9(), read_Data.getExcel2(testData1, 1))
        #     print u'当前位置文本为:%s,预期文本为:%s'%(self.JC.assertion_test9(),read_Data.getExcel2(testData1, 1))
        # try:
        #     self.assertIn(read_Data.getExcel2(testData1, 0),self.JC.assertion_test9())
        # except:
        #     self.assertIn(read_Data.getExcel2(testData1, 1), self.JC.assertion_test9())
        self.log.info('------编辑货品类别:stop!---------')

    def test_hp3(self):
        '''禁用货品类别'''
        '''

        :禁用货品类别
        :return: 
        '''
        self.log.info('------禁用货品类别:start!---------')
        data = self.JC.assertion_test7()
        if data == read_Data.getExcel2(6, 6):
            self.JC.assertion_test5()
        else:
            self.JC.assertion_test5()
            self.JC.assertion_test5()
        self.assertEqual(self.JC.assertion_test7(), read_Data.getExcel2(11, 6))
        self.log.info('------禁用货品类别:stop!---------')

    def test_hp4(self):
        '''启用货品类别'''
        '''

        :启用货品类别
        :return: 
        '''
        self.log.info('------启用货品类别:start!---------')
        data = self.JC.assertion_test7()
        if data == read_Data.getExcel2(11, 6):
            self.JC.assertion_test5()
        else:
            self.JC.assertion_test5()
            self.JC.assertion_test5()
        self.assertEqual(self.JC.assertion_test7(), read_Data.getExcel2(6, 6))
        self.log.info('------启用货品类别:stop!---------')
Пример #13
0
 def tearDownClass(cls):
     Log().info('正在重置数据库测试数据......')
     databaseOperations().delete_user('sys_user', 'username')
Пример #14
0
 def setUpClass(cls) -> None:
     cls.log = Log()
     cls.data = addAdminUser().test_data
Пример #15
0
from driver.remoteDriver import RemoteDriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from common.logger import Log
from pageobject.basePage import Page
from locator.baidu.index import IndexPage
from common.handleby import WebHandlerBy
from testdata.baidu.index import BaiduIndexInput
import sys
logger = Log()


class BaiduPage(Page):

    logout_loc = (By.XPATH, '//a[text()="退出"]')

    def ispresent(self):
        try:
            WebDriverWait(self.driver, 20).until(
                EC.visibility_of_element_located(BaiduPage.logout_loc))
            return True
        except:
            logger.error('退出按钮没有出现{0}'.format(sys._getframe().f_code.co_name))
            return False

    def inputtext(self):
        search_input = self.driver.find_element_by_id(IndexPage.search_input)
        search_input.send_keys(BaiduIndexInput.search_input)

    def clickbutton(self):
Пример #16
0
 def __init__(self, file_path):
     self.file_path = file_path
     self.log = Log()
Пример #17
0
class JiChu3(unittest.TestCase):
    log = Log()

    @classmethod
    def setUpClass(cls):
        cls.driver = browser()
        cls.JC = Jichu(cls.driver)
        cls.JC.open(login_url, u'登录')
        cls.driver.implicitly_wait(5)
        Global_function.login(cls)
        cls.JC.assertion_test1()
        cls.JC.assertion_test2()
        cls.JC.assertion_test17()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    '''
        SKU设置
    '''

    def test_SKU1(self):
        '''新增SKU'''
        '''

        :新增SKU
        :return: 
        '''
        self.log.info('------新增SKU:start!---------')
        data = self.JC.assertion_test8()
        try:
            data1 = int(data[11]) + 1
        except:
            Data2 = data[12:14]
            data2 = int(Data2) + 1
        self.JC.assertion_test18(read_Data.getExcel2(testData, 7),
                                 read_Data.getExcel2(testData1, 7),
                                 read_Data.getExcel2(testData, 7), '12345',
                                 read_Data.getExcel2(testData, 7),
                                 read_Data.getExcel2(testData, 0),
                                 read_Data.getExcel2(testData, 1))
        data3 = self.JC.assertion_test8()
        try:
            data31 = int(data3[11])
            self.assertEqual(data1, data31)
        except:
            Data3 = int(data3[12:14])
            self.assertEqual(Data3, data2)
        self.log.info('------新增SKU:stop!---------')

    def test_SKU2(self):
        '''编辑SKU'''
        '''

        :编辑SKU
        :return: 
        '''
        self.log.info('------编辑SKU:start!---------')
        self.JC.assertion_test21(read_Data.getExcel2(testData1, 0),
                                 read_Data.getExcel2(testData1, 1))
        #self.assertNotEqual(self.JC.assertion_test19(), read_Data.getExcel2(testData1, 2))
        self.log.info('------编辑SKU:stop!---------')

    def test_SKU3(self):
        '''禁用SKU'''
        '''

        :禁用SKU
        :return: 
        '''
        self.log.info('------禁用SKU:start!---------')
        t.sleep(0.5)
        data = self.JC.assertion_test20()
        if data == read_Data.getExcel2(12, 6):
            self.JC.assertion_test22()
        else:
            self.JC.assertion_test22()
            self.JC.assertion_test22()
        self.assertEqual(self.JC.assertion_test20(),
                         read_Data.getExcel2(11, 6))
        self.log.info('------禁用SKU:stop!---------')

    def test_SKU4(self):
        '''启用SKU'''
        '''

        :启用SKU
        :return: 
        '''
        self.log.info('------启用SKU:start!---------')
        data = self.JC.assertion_test20()
        if data == read_Data.getExcel2(11, 6):
            self.JC.assertion_test22()
        else:
            self.JC.assertion_test22()
            self.JC.assertion_test22()
        self.assertEqual(self.JC.assertion_test20(),
                         read_Data.getExcel2(12, 6))
        self.log.info('------启用SKU:stop!---------')
Пример #18
0
class Ts_ibeforagent(unittest.TestCase):
    log = Log()

    def setUp(self):
        self.log.info("---------开始测试---------")
        # 测试环境地址
        # self.url = "http://172.29.50.67:7060/sbe"
        # 生存环境地址
        self.url = "http://113.108.131.149:8060/sbe"

    @ddt.data(*testDate)
    def tearDown(self, values):

        self.log.info(values['testcaseID'] + "---------结束测试---------")

    # @unittest.skip(u'我很喜欢你,不想执行你')
    @ddt.data(*testDate)
    # @ddt.unpack
    # def test_RT(self,testcaseid,expath,testname,hope):
    def test_ibeforagent_inf(self, values):
        u'API接口上线验证'
        self.intdiscrp = values['testcaseID']
        self.log.info(self.intdiscrp + "---------start---------" +
                      values['testcaseID'])
        # self.url = "http://172.29.50.67:7060/sbe"
        # self.data = expath
        # self.caseName=testname
        self.data = values['except_path']
        self.caseName = values['tscase_name']
        self.excelPath = os.path.join(self.data, self.caseName)
        self.f = open(self.excelPath)
        self.data = self.f.read()
        # print data
        self.f.close()
        # self.payload =json.loads(self.data)
        self.payload = json.loads(self.data, encoding='GB2312')
        self.payload["token"] = token
        # print "tihuan%s"%self.payload
        # MD5加密拿到skybusAuth
        self.ttestdMD5 = API_skybusauth()
        self.md5dd = self.ttestdMD5.skybus_md5(token, self.payload)
        print "skybusAuth:%s" % self.md5dd
        self.headers = {
            "Content-Type": "application/json;charset=utf-8",
            "skybusAuth": self.md5dd
        }
        self.r = requests.post(self.url,
                               json=self.payload,
                               headers=self.headers,
                               allow_redirects=False,
                               verify=False)
        # 判断返回是否正确,正则表达式去提取"pnrcode":"HT4DKY"
        # print type(self.r.content)
        # self.t = re.findall(r'"class":"(.+?)",', self.r.content)
        # # print "t=%s"%self.t
        # self.ACTresults = self.t[0]
        # # print self.t[0]
        # 期望值
        self.log.info(self.intdiscrp + "-接口的返回--" + self.r.content)
        self.hope = values['hope']
        # self.hope =hope
        if self.hope in self.r.content:
            a = True
            self.log.info(self.intdiscrp + "测试结果----" + "pass" + "-----")
        else:
            a = False
            self.log.info(self.intdiscrp + "测试结果-----" + "false" + "-----")
        # print a
        self.log.info(self.intdiscrp + "---期待值--" + self.hope)
        try:
            self.aa = self.assertTrue(a, msg="预期结果和实际结果不符")
        except () as e:
            self.log.info(self.intdiscrp + str(e))
            raise
        self.log.info(self.intdiscrp + "------------end--------------------")
Пример #19
0
    def setUp(self):

        self.log = Log()
        self.request = Request()
Пример #20
0
class Capsummary_update(unittest.TestCase):
    u'''
    站点运力修改
    '''

    s = requests.session()
    lon = Login(s)
    log = Log()
    mysqlutil = MysqlUtil()
    log.info("---站点运力修改接口测试---")

    def update(self, datas):
        '''一个参数
        datas
        :param datas:
        :return:
        '''
        ip = readConfig.ip
        i_port = readConfig.i_port

        url = "http://" + ip + ":" + i_port + "/backend/capacity/capsummary/update"
        headers = {
            "User-Agent":
            "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36",
            "X-Requested-With": "XMLHttpRequest",
            "Connection": "keep-alive",
            "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
        }

        code = "xuxingan"
        passwd = "admin"
        self.lon.login(code, passwd)
        d = {"datas": datas}
        r = self.s.post(url, data=d, headers=headers)
        result = r.json()
        print(result)

        sql = " SELECT id FROM cap_delivery_detail  GROUP BY id;"
        ids = self.mysqlutil.mysql_getrows(sql)
        s_ids = ids.__str__()
        if datas != '':
            for i in datas.split(','):
                if i.split('&')[0] in s_ids:
                    self.assertEqual(result["code"], '0000')
                    self.assertEqual(result["msg"], '接口正常')
                    self.assertEqual(result["data"], [])
                elif i.split('&')[0] not in s_ids:
                    self.assertEqual(result["code"], '9999')
                    self.assertEqual(result["msg"], '未知异常')
                    self.assertEqual(result["data"], {})
        elif datas == '':
            self.assertEqual(result["code"], '0025')
            self.assertEqual(result["msg"], '参数不能为空')
            self.assertEqual(result["data"], {})

    def test_update1(self):
        u'''测试站点运力修改接口:修改一条记录'''
        self.log.info("---1.修改一条记录:start!---")
        datas = '6&10'
        self.update(datas)
        self.log.info("---pass---")
        self.log.info("")

    def test_update2(self):
        u'''测试站点运力修改接口:批量修改多条记录'''
        self.log.info("---2.批量修改多条记录:start!---")
        datas = '6&10,8&20,10&0'
        self.update(datas)
        self.log.info("---pass---")
        self.log.info("")

    def test_update3(self):
        u'''测试站点运力修改接口:批量修改多条记录'''
        self.log.info("---3.datas传入为空:start!---")
        datas = ''
        self.update(datas)
        self.log.info("---pass---")
        self.log.info("")
Пример #21
0
 def setup(self):
     Log().info("START".center(66, '*'))
     self.http = HttpRquest()
     self.check_json = Check()
Пример #22
0
class test_01_Order1(unittest.TestCase,requestMethod):
    log = Log()
    purchasePrice = random.randint(1000,200000) # 采购价
    paidDeposit = random.randint(100,2000) # 已付订金
    bond = purchasePrice * 0.2 # 应付保证金
    amount = purchasePrice * 0.8 - paidDeposit # 垫资总额
    carInfo = {}
    carInfo["carName"] = "本田 思域 2016款 1.5L"
    carInfo["style"] = "豪华版"
    carInfo["frameNumber"] = "LNAA2AA13K5003256"
    carInfo["produceYear"] = nowTime
    carInfo["gearbox"] = "自动"
    carInfo["interiorColor"] = "黄色"
    carInfo["type"] = "标配"
    carInfo["number"] = 1
    carInfo["color"] = "炫耀黑"
    carInfo["amount"] = amount
    carInfo["guidePrice"] = random.randint(1000,200000) # 指导价
    carInfo["purchasePrice"] = purchasePrice
    carInfo["price"] = random.randint(1000,200000) # 销售价
    carInfo = json.dumps(carInfo, ensure_ascii=False)
    def test_01_Shop_Submit_Order(self):
        print(" ")
        self.log.info("-------SHOP下单保理1-------")
        # remove the warning
        warnings.simplefilter('ignore', ResourceWarning)
        # 登录
        self.login(address="login_v2/index",account=r.shopAccount,password=r.shopPassword)
        # 提交订单
        if self.s.json()["resultCode"]==200:

            self.post(address="frontend_v2/order/create",params=
            {
                "act":"add", # add提交,draft草稿
                "paidDeposit":self.paidDeposit, # 已交订金(汽贸店给4S店)
                "deposit":self.paidDeposit,# 支付订金(客户给汽贸店)
                "voucher":image,# 定金支付凭证
                "contractUrl":image,# 购车合同
                "period":30,# 融资期限
                "bond":self.bond,# 应付保证金
                "pickUpTime":nowTime,# 提车日期
                "carsInfo":self.carInfo,
                "userName":signName,# 上牌方
                "phone":signPhone,
                "address":address,
                "idCard":signIdCard,
                "shopName":orgName,
                "orgAddress":address,
                "orgLink":signName,# 4S联系人
                "orgPhone":phone,
                "account":account,
                "reAccount":account,
                "payRemark":"替xx付款",
                "provinceName":"广东省",
                "cityName":"深圳市",
                "areaName":"南山区",
                "bankName":"广发银行",
                "bankBranch":"南山支行",
                "accept":1,
            })

        else:
            print("未知错误")
    def test_02_Admin_Verify_Order(self):
        self.log.info("-------ADMIN审核订单-------")
        # remove the warning
        warnings.simplefilter('ignore', ResourceWarning)
        # 登录
        self.login(address="work_v2/login", account=r.h5Account, password=r.adminPassword)
        if self.s.json()["resultCode"]==200:

            # 保理1订单列表
            self.get(address="work_v2/order/index")
            self.orderId = self.s.json()["data"]["list"][0]["id"]
            # 保理1详情
            self.get(address="work_v2/order/detail",params={"orderId":self.orderId})
            self.B3Title = self.s.json()["data"]["contractList"]["B3"]["Title"]
            self.B3Url = self.s.json()["data"]["contractList"]["B3"]["Template"]
            self.B4Title = self.s.json()["data"]["contractList"]["B4"]["Title"]
            self.B4Url = self.s.json()["data"]["contractList"]["B4"]["Template"]
            # 调整融资金额以及利率
            self.post(address="work_v2/order/adjustAmount",params=
            {
                "orderId":self.orderId,
                "amount":self.amount, # 垫资总额
                "rate":rate,# 利率
            })
            # 审核订单
            # 合同参数
            B3 = {}
            B3["loading"] = "false"
            B3["isUpload"] = 0 # 0:合同非上传
            B3["type"] = 3 # 合同类型
            B3["title"] = self.B3Title # 合同名称
            B3["contractUrl"] = self.B3Url # 合同模板
            B4 = {}
            B4["loading"] = "false"
            B4["isUpload"] = 0
            B4["type"] = 3
            B4["title"] = self.B4Title
            B4["contractUrl"] = self.B4Url
            contractList = {}
            contractList["B3"] = B3
            contractList["B4"] = B4
            contractList = json.dumps(contractList,ensure_ascii=False)
            self.post(address="work_v2/order/verify",params=
            {
                "orderId":self.orderId,
                "state":2,
                "reason":remark,
                "attachment":image,
                "contractList":contractList
            })
            # 总经理审核,发起合同签署
            self.get(address="h5_v2/contract/confirmSign",params=
            {
               "type":2,
                "id":self.orderId,
                "signType":0,
            })
        else:
            print("未知错误")
Пример #23
0
 def teardown(self):
     # 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格。
     Log().info("END".center(66, '*'))
     print('\n')
Пример #24
0
    def tests_pr(self):
        u'''即有宝流程测试pr合同'''
        Log().info("订单流程开始")
        time.sleep(5)
        com = appclass(self.driver, self.cpath)
        # com.capital_sel(getparam['paramk'])  #资金池--暂屏蔽
        com.swipeleft(3)
        time.sleep(1)
        com.elm_operate(0, "")
        com.elm_operate(1, self.uname)
        for x in range(2, 4):
            com.elm_operate(x, "")
        time.sleep(3)
        if com.findItem("ok"):
            com.elm_operate(4, "")
        if com.findItem("开启手势密码"):
            # self.driver.tap([(0,60), (1080,210), (100, 100)], 100)
            com.elm_operate(5, "")
        if com.findItem("确定"):
            com.elm_operate(6, "")
        com.elm_operate(7, "")
        time.sleep(4)
        com.get_dbtext(1, self.getparam['parama'])
        com.elm_operate(8, "")
        time.sleep(1)
        com.get_dbtext(0, self.getparam['paramb'])
        com.elm_operate(9, "")
        time.sleep(1)
        com.get_dbtext(0, self.getparam['paramc'])

        etm = self.driver.find_element_by_id("com.giveu.corder:id/ll_item")
        etms = etm.find_elements_by_id("com.giveu.corder:id/tv_choose_right")
        time.sleep(1)
        etms[0].click()
        time.sleep(1)
        com.get_dbtext(0, self.getparam['paramh'])
        etms[1].click()
        time.sleep(1)
        com.get_dbtext(0, self.getparam['parami'])
        com.elm_operate(20, "")  #商品型号
        com.elm_operate(12, self.getparam['paramd'])  #商品金额
        com.elm_operate(13, self.getparam['parame'])  #首付金额
        com.elm_operate(14, "")
        time.sleep(4)
        com.checkItem("选择分期", "新建订单页面一下一步保存")
        #------------15,16
        if com.findItem(self.getparam['paramg']):
            com.get_dbtext(0, self.getparam['paramg'])
        else:
            com.swipeup()
            if com.findItem(self.getparam['paramg']):
                com.get_dbtext(0, self.getparam['paramg'])
            else:
                com.elm_operate(37, "")
        com.elm_operate(37, "")
        if com.findItem("请输入套餐信息"):
            com.elm_operate(84, "")
        #保险相关
        bx_one = self.driver.find_elements_by_id(
            "com.giveu.corder:id/cb_insurance")
        bbx = self.driver.find_elements_by_id(
            "com.giveu.corder:id/cb_treasure")
        print(bx_one)
        if getparam['paramf'] == '不参加' and len(bx_one) > 0:
            self.driver.find_element_by_id(
                "com.giveu.corder:id/cb_insurance").click()
        elif getparam['paramf'] == '保险' and len(bbx) > 0:
            self.driver.find_element_by_id(
                "com.giveu.corder:id/cb_treasure").click()
        else:
            print("pass")
        time.sleep(1)
        qmb = self.driver.find_elements_by_id(
            "com.giveu.corder:id/cb_all_insurance")
        # wifi= self.driver.find_elements_by_id("com.giveu.corder:id/cb_wifi")
        sspa = self.driver.find_elements_by_id("com.giveu.corder:id/cb_broken")
        if self.getparam['paramj'] == '全面保' and len(qmb) > 0:
            self.driver.find_element_by_id(
                "com.giveu.corder:id/cb_insurance").click()
        elif self.getparam['paramj'] == '碎碎平安' and len(sspa) > 0:
            self.driver.find_element_by_id(
                "com.giveu.corder:id/cb_broken").click()
        else:
            print("pass")
        com.swipeup()
        com.elm_operate(23, "")
        time.sleep(4)
        com.checkItem("客户信息", "新建订单页面二下一步保存")
        #拍照
        com.elm_operate(24, "")
        com.elm_operate(25, "")
        time.sleep(2)
        com.swipedown()
        com.elm_operate(26, con_name + chzw())
        textval = com.get_elm_textval(26)
        n = {'name': textval}
        wryaml(PATH("..\config\yaml\jyb\dim.yaml"), n)
        time.sleep(2)
        textvall = getyaml(PATH("..\config\yaml\jyb\dim.yaml")).get('name')
        for s in range(27, 41):
            com.elm_operate(s, "")
        time.sleep(1)
        com.swipeup()
        com.elm_operate(41, "")
        Log().info("订单名称:%s " % textval)
        V = OracleUtil(dbname)
        time.sleep(2)
        cnoval = V.oracle_getstring(
            "select contract_no from cs_credit where id_person=(select id from (select * from cs_person where name like '%s%%' order by create_time desc) where rownum=1)"
            % textval)
        time.sleep(1)
        print(cnoval)
        A = MysqlUtil()
        time.sleep(2)
        if com.findItem("客户门店照片"):
            Log().info("订单pr合同号生成成功:%s" % cnoval)
            A.mysql_execute(
                "INSERT INTO mobiletest_mobiledata (contract_no,con_name,con_ident,con_phone,create_time,capital_source,con_status,username,runnum,case_no) VALUES ('%s','%s','%s','%s',NOW(),'%s','%s','%s','%s','%s')"
                % (cnoval, textval, idcard, mobilephone, getparam['paramk'],
                   'pr', uname, markval, getparam['paramm']))
        else:
            Log().info("订单pr合同号生成异常:%s" % cnoval)
            raise RunError('合同未生成')
Пример #25
0
 def setUpClass(cls) -> None:
     cls.log = Log()
     cls.data = lockUser().test_data
     cls.log.info('正在初始化数据库测试数据。。。。。。')
     databaseOperations().user_status_0()
Пример #26
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-04-15 09:00:00
# @Author  : Canon
# @Link    : https://www.python.org
# @Version : 3.6.1

from common.conf_utils import Gateway
import pageobj.gateway.submit_page as Sub
from common.logger import Log

log = Log()


class Action(object):
    def __init__(self, driver):
        self.gate = Gateway()
        self.driver = driver

    def moto(self, test_data=None):
        """
        预授权
        :param test_data: 测试数据 type: dict
        """
        if test_data is None:
            test_data = {}
        test_pay = Sub.SubmitPage(self.driver)
        log.info("----- 页面标题: %s -----" % self.driver.title)
        addr = self.gate.read_val("gateway", "proj_domain") + self.gate.read_val("addr", "moto")
        test_data.update({"提交地址": addr})
        for item in test_data:
Пример #27
0
 def tearDownClass(cls):
     Log().info('正在重置数据库测试数据。。。。。。')
     databaseOperations().user_status_0()
Пример #28
0
class LoginTestCase(unittest.TestCase):
    '''登陆'''
    log = Log()

    def setUp(self):
        self.headers = {
            "Accept-Encoding": "gzip",
            "Connection": "Keep-Alive",
            "Content-Type": "application/x-www-form-urlencoded",
            "Host": "testapi.mrpyq.com",
            "mpc-mac": "68%3Aa0%3Af6%3A08%3Ae3%3A95",
            "mpc-network": "wifi",
            "mpc-os": "19",
            "mpc-token": "A000004F7372FA",
            "mpc-type": "C8817D",
            "mpc-ver": "3.1.0",
            "User-Agent": "MingPeng/3.1.0"
        }
        self.data = {
            "access_token": " ",
            "userid": "",
            "v": "3.1.0",
            "type": "android",
            "phone_areacode": "+86",
            "channel": "main"
        }
        self.url = "https://testapi.mrpyq.com/pass/reg"

    def testLogin_01(self):
        '''测试登陆(已注册号码,正确验证码)'''
        self.log.info("------测试登陆(已注册号码,正确验证码):start!---------")
        self.data["action"] = "phone_verifycode_login"
        self.data["phone"] = 18872215422
        self.data["code"] = 20177
        self.log.info("------输入已注册号码:%s ,验证码: %s 。" %
                      (self.data["phone"], self.data["code"]))
        r = requests.post(self.url, headers=self.headers, data=self.data)
        print(r.content)
        result = r.json()
        print(result["user"])
        user = result["user"]
        print(result["user"])
        # 断言:测试结果与期望结果对比
        self.assertEqual(True, user["me"], msg='验证码登陆失败')
        self.log.info("获取测试结果:%s" % user["me"])
        self.log.info("----------pass!-------")

    # self.log.info("------测试登陆(已注册号码,正确验证码):start!---------")
    # self.log.info("------输入已注册号码:%s ,验证码: %s 。" % (self.data["phone"], self.data["code"]))
    # self.log.info("获取测试结果:%s" % user["me"])
    # self.log.info("----------pass!-------")

    def testLogin_02(self):
        '''测试登陆(已注册号码,错误验证码)'''
        self.log.info("------测试登陆(已注册号码,错误验证码):start!---------")
        self.data["action"] = "phone_verifycode_login"
        self.data["phone"] = 18872215422
        self.data["code"] = 12345
        self.log.info("------输入已注册号码:%s ,验证码: %s 。" %
                      (self.data["phone"], self.data["code"]))
        r = requests.post(self.url, headers=self.headers, data=self.data)
        print(r.content)
        result = r.json()
        print(result["error"])
        print(result["error_code"])
        # 断言:测试结果与期望结果对比
        self.assertEqual(u"该手机验证码不正确或已使用过", result["error"], msg='验证码登陆失败')
        self.assertEqual(-1, result["error_code"], msg='验证码登陆失败')
        self.log.info("获取测试结果:%s" % result["error"])
        self.log.info("----------pass!-------")

    def testLogin_03(self):
        '''测试登陆(已注册号码,正确密码)'''
        self.log.info("------测试登陆(已注册号码,正确密码):start!---------")
        self.data["action"] = "phone_login"
        self.data["phone"] = 18872215422
        self.data["password"] = 13114328435
        self.log.info("------输入已注册号码:%s ,正确密码: %s 。" %
                      (self.data["phone"], self.data["password"]))
        r = requests.post(self.url, headers=self.headers, data=self.data)
        print(r.content)
        result = r.json()
        user = result["user"]
        print(result["user"])

        # 断言:测试结果与期望结果对比
        self.assertEqual(True, user["me"], msg='密码登陆失败')
        self.log.info("获取测试结果:user{me:} = %s" % user["me"])
        self.log.info("----------pass!-------")

    def testLogin_04(self):
        '''测试登陆(已注册号码,错误密码)'''
        self.log.info("------测试登陆(已注册号码,错误密码):start!---------")
        self.data["action"] = "phone_login"
        self.data["phone"] = 18872215422
        self.data["password"] = 13114328433
        self.log.info("------输入已注册号码:%s ,错误密码: %s 。" %
                      (self.data["phone"], self.data["password"]))
        r = requests.post(self.url, headers=self.headers, data=self.data)
        print(r.content)
        result = r.json()
        print(result["error"])
        print(result["error_code"])
        # 断言:测试结果与期望结果对比
        self.assertEqual(u"您的手机号或密码不正确", result["error"], msg='验证码登陆失败')
        self.assertEqual(-1, result["error_code"], msg='验证码登陆失败')
        self.log.info("获取测试结果:error = %s,error_code = %s" %
                      (result["error"], result["error_code"]))
        self.log.info("----------pass!-------")
Пример #29
0
 def setUpClass(cls) -> None:
     cls.log = Log()
     cls.data = disableWithdraw().test_data
     cls.log.info('正在初始化数据库测试数据。。。。。。')
     databaseOperations().select_withdraw_status()
Пример #30
0
class Buyed_lesson(unittest.TestCase):
    def setUp(self):
        self.s = requests.session()
        self.lgin = LG(self.s) #实例化登录类
        self.uid_token = self.lgin.login() #登录测试环境澜渟医生
        self.header = {'User-Agent': 'LanTingDoctor/1.3.1 (iPad; iOS 10.1.1; Scale/2.00)',
                       'Accept-Encoding': 'gzip, deflate',
                       'Accept-Language': 'zh-Hans-CN;q=1',
                       'Content-Type': 'application/json',
                       'requestApp': '3',
                       'requestclient': '2',
                       'versionForApp': '2.0',
                       'Authorization': 'Basic YXBpTGFudGluZ0BtZWRsYW5kZXIuY29tOkFwaVRobWxkTWxkQDIwMTM=',
                       'Connection': 'keep-alive'}
        self.log = Log()

    def test_buyed_lesson(self):
        u'这是测试已购课程接口-课程类型为所有'
        self.log.info('-----开始测试已购课程接口(课程类型是所有)------')
        url = 'http://api.lesson.sunnycare.cc/v1/orders'
        json_data = {
            "timestamp":str(int(time.time())),
            "product_type":"",
            "token":self.uid_token,
            "time":"0",
            "nonce": get_digit()
        }
        json_data['sign'] = get_sign(json_data)
        r = self.s.post(url,headers = self.header,json=json_data)
        try:
            self.log.info('断言请求接口是否成功!')
            self.log.info('返回的内容是:%s' % r.json())
            self.assertEqual('请求成功.',r.json()['note'])
        except Exception as e:
            raise AssertionError
            self.log.error('请求已购课程接口失败,原因:%s' % e)


    def test_buyed_lesson2(self):
        u'这是测试已购课程接口-课程类型为所有课程'
        self.log.info('-----开始测试已购课程接口(课程类型是所有课程)------')
        url = 'http://api.lesson.sunnycare.cc/v1/orders'
        json_data = {
            "timestamp":str(int(time.time())),
            "product_type":"2",
            "token":self.uid_token,
            "time":"0",
            "nonce": get_digit()
        }
        json_data['sign'] = get_sign(json_data)
        r = self.s.post(url,headers = self.header,json=json_data)
        try:
            self.log.info('断言请求接口是否成功!')
            self.log.info('返回的内容是:%s' % r.json())
            self.assertEqual('请求成功.',r.json()['note'])
        except Exception as e:
            raise AssertionError
            self.log.error('请求已购课程接口失败,原因:%s' % e)

    def test_buyed_lesson3(self):
        u'这是测试已购课程接口-课程类型为所有专栏'
        self.log.info('-----开始测试已购课程接口(课程类型是所有专栏)------')
        url = 'http://api.lesson.sunnycare.cc/v1/orders'
        json_data = {
            "timestamp":str(time.time()),
            "product_type":"3",
            "token":self.uid_token,
            "time":"0",
            "nonce": get_digit()
        }
        json_data['sign'] = get_sign(json_data)
        r = self.s.post(url,headers = self.header,json=json_data)
        try:
            self.log.info('断言请求接口是否成功!')
            self.log.info('返回的内容是:%s' % r.json())
            self.assertEqual('请求成功.',r.json()['note'])
        except Exception as e:
            raise AssertionError
            self.log.error('请求已购课程接口失败,原因:%s' % e)

    def tearDown(self):
        self.s.close()
Пример #31
0
 def tearDownClass(cls):
     Log().info('正在重置数据库测试数据。。。。。。')
     databaseOperations().select_withdraw_status()
class Common_sites(unittest.TestCase):
    u'''
    站点列表接口
    '''
    log = Log()
    mysqlutil = MysqlUtil()
    log.info("---站点列表接口测试---")

    def sites(self, cityCompanyCode):
        '''一个参数
        市公司编码:cityCompanyCode
        :param cityCompanyCode:
        :return:
        '''
        ip = readConfig.ip
        i_port = readConfig.i_port

        url = "http://" + ip + ":" + i_port + "/backend/capacity/common/sites"
        headers = {
            "User-Agent":
            "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36",
            "X-Requested-With": "XMLHttpRequest",
            "Connection": "keep-alive",
            "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
        }
        d = {"cityCompanyCode": cityCompanyCode}
        r = requests.post(url, data=d, headers=headers)
        result = r.json()

        self.log.info("---获取响应结果:%s" % result)
        # self.log.info("---校验code字段---")
        self.assertEqual(result["code"], '0000')

        # self.log.info("---校验msg字段---")
        self.assertEqual(result["msg"], '接口正常')

        sql1 = "SELECT parent_code FROM cap_organization  WHERE LEVEL = '3' GROUP BY parent_code;"
        cityCompanyCodes = self.mysqlutil.mysql_getrows(
            sql1)  #从数据库中取出所有的市公司编码(parent_code)
        s_cityComcityCompanyCodes = cityCompanyCodes.__str__()  #将元组转换成字符串
        # a_city = cityCompanyCodes[random.randint(0,(len(cityCompanyCodes)))][0]

        if cityCompanyCode in s_cityComcityCompanyCodes:
            # self.log.info("---校验data中的查询结果数量---")
            sql = "SELECT * FROM cap_organization WHERE LEVEL = '3' AND parent_code = '%s';" % cityCompanyCode
            counts = self.mysqlutil.mysql_getcounts(sql)
            self.assertEqual(len(result["data"]), counts)
        elif cityCompanyCode == '':
            # self.log.info("---校验data中的查询结果数量---")
            self.assertEqual(result["data"], [])
        elif cityCompanyCode != '' and cityCompanyCode not in s_cityComcityCompanyCodes:
            # self.log.info("---校验data中的查询结果数量---")
            self.assertEqual(result["data"], [])

    def test_sites1(self):
        u'''测试站点列表接口:请求参数正确'''
        self.log.info("---1.请求参数正确:start!---")
        sql1 = "SELECT parent_code FROM cap_organization  WHERE LEVEL = '3' GROUP BY parent_code;"
        cityCompanyCodes = self.mysqlutil.mysql_getrows(sql1)
        print(cityCompanyCodes)
        cityCompanyCode = cityCompanyCodes[random.randint(
            0, (len(cityCompanyCodes)))][0]
        self.sites(cityCompanyCode)
        self.log.info("---pass---")
        self.log.info("")

    def test_sites2(self):
        u'''测试站点列表接口:cityCompanyCode传入为空'''
        self.log.info("---2.cityCompanyCode传入为空:start!---")
        cityCompanyCode = ""
        self.sites(cityCompanyCode)
        self.log.info("---pass---")
        self.log.info("")

    def test_sites3(self):
        u'''测试站点列表接口:cityCompanyCode传入不存在的市公司编码'''
        self.log.info("---3.cityCompanyCode传入不存在的市公司编码:start!---")
        cityCompanyCode = "a"
        self.sites(cityCompanyCode)
        self.log.info("---pass---")
        self.log.info("")
Пример #33
0
class Client:
	cursor_default = None
	cursor_capture = None

	def __init__(self, resolution, host, port, username, password, split="\n"):
		global network_log
		
		self.log = Log('client')
		network_log = Log('network')

		# must have at least one handler
		self.log.logger.addHandler(logging.NullHandler())
		network_log.logger.addHandler(logging.NullHandler())
		
		# opengl must be initialized first
		self.log.info("Initializing display (windowed at %(resolution)s)", dict(resolution='%dx%d'%resolution))
		self._screen = pygame.display.set_mode(resolution, OPENGL|DOUBLEBUF)
		pygame.display.set_caption('yamosg')

		self.log.debug("OpenGL setup (version=\"%(version)s\", vendor=\"%(vendor)s\")", dict(version=glGetString(GL_VERSION), vendor=glGetString(GL_VENDOR)))
		setup_opengl()

		Client.cursor_default = pygame.cursors.arrow
		Client.cursor_capture = pygame.cursors.diamond
		
		self._resolution = Vector2i(resolution)
		self._username = username
		self._password = password
		self._split = split
		self._running = False
		self._state = StateManager()
		self._game = GameWidget(self, self._resolution)
		self._container = Composite(Vector2i(0,0), self._resolution, children=[self._game])
		self._toolbar = Toolbar(self._game)
		self._window = VBox()
		self._window.add(self._toolbar, size=LayoutAttachment(Vector2i(1,0), Vector2i(0,25)))
		self._window.add(self._container)
		self._state.push(GameState(self._resolution, self._window))
		self._network = Network(self, host, port)
		self._command_store = {}
		self._command_queue = []
		self._command_lock = threading.Lock()
		self._playerid = None
		self._players = {}
		self._capture_position = None
		self._timer = 0

		# resizing must be done after state has been created so the event is propagated proper.
		self._resize(self._resolution)
	
	def add_window(self, win):
		self._container.add(win)
	
	@event(pygame.QUIT)
	def quit(self, event=None):
		self._running = False
	
	def is_running(self):
		return self._running	

	def resolution(self):
		return self._resolution

	def run(self):
		self._running = True
		self._network.start()
		
		while self._running:
			try:
				self._flush_queue()
				self._logic()
				self._render()
			except GLError:
				traceback.print_exc()
				self.quit()
			except:
				traceback.print_exc()
	
	@event(pygame.VIDEORESIZE, lambda event: Vector2i(event.w, event.h))
	def _resize(self, resolution):
		self.log.debug("Resolution changed to %dx%d", resolution.x, resolution.y)
		#self._screen = pygame.display.set_mode(resolution.xy(), OPENGL|DOUBLEBUF|RESIZABLE)
		setup_opengl()

		self._resolution = resolution
		glMatrixMode(GL_PROJECTION)
		glLoadIdentity()
		glOrtho(0, resolution.x, 0, resolution.y, -1.0, 1.0);
		glMatrixMode(GL_MODELVIEW)
		glLoadIdentity()

		self._state.resize(resolution)
		self._game.on_resize(resolution, True)
	
	def _flush_queue(self):
		while True:
			self._command_lock.acquire()
			if len(self._command_queue) == 0:
				self._command_lock.release()
				break
		
			command, args = self._command_queue.pop(0)
			self._command_lock.release()
		
			try:
				self._dispatch(command, args)
			except:
				traceback.print_exc()
		
	def _logic(self):
		global event_table
		for event in pygame.event.get():
			func, adapter = event_table.get(event.type, (None,None))
			if func is None:
				continue
			func(self, adapter(event))
		t = time()
		if t-self._timer > 1.0:
			self._toolbar.invalidate()
			self._timer = t

	@event(pygame.MOUSEMOTION)
	def _mousemotion(self, event):
		pos = Vector2i(event.pos)
		pos.y = self._resolution.y - pos.y
		self._state.on_mousemove(pos)
	
	@event(pygame.MOUSEBUTTONDOWN)
	def _mousebuttondown(self, event):
		pos = Vector2i(event.pos)
		pos.y = self._resolution.y - pos.y

		if self._capture_position is not None:
			if event.button == 1:
				callback, args, kwargs = self._capture_position
				try:
					callback(pos, *args, **kwargs)
				except:
					traceback.print_exc()
					
			self._capture_position = None
			pygame.mouse.set_cursor(*Client.cursor_default)
			return
		self._state.on_buttondown(pos, event.button)

	@event(pygame.MOUSEBUTTONUP)
	def _mousebuttonup(self, event):
		pos = Vector2i(event.pos)
		pos.y = self._resolution.y - pos.y
		self._state.on_buttonup(pos, event.button)
	
	def _render(self):
		glClearColor(1,0,0,0)
		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
		self._state.render()
		
		pygame.display.flip()
	
	def _dispatch(self, cmd, args):
		""" Run command """
		global network_log
		network_log.debug('got %s(%s)', cmd, ', '.join([str(x) for x in args]))
		try:
			# Try to get function
			func = getattr(self, cmd)
			
			# See if it is exposed, so a malicious cannot run any func.
			if not getattr(func, 'exposed'):
				raise AttributeError # raised to get same handling as a non-existing func.
			
		except AttributeError:
			print 'Malformed or bad command:', cmd, args
			return
		except:
			print 'Unhandled exception when running command:', cmd, args
			traceback.print_exc()
			return
		
		func(*args)

	def push_command(self, line):
		# Run from network thread
		
		try:
			self._command_lock.acquire()
			
			tokens = parse_tokens(line)
			id = tokens[0]
			if id == 'UNICAST' or id == 'BROADCAST':
				id, command, args = parse(line)
				self._command_queue.append((command, args))
			elif id in self._command_store:
				status = tokens[1]
				args = tuple(tokens[2:])
				data = line[len(id)+len(status)+2:]

				self._command_store[id].reply(status, args, data)
			else:
				raise RuntimeError, 'Got a reply for ID ' + id + ' but no matching request'
		except:
			traceback.print_exc()
		finally:
			self._command_lock.release()
	
	def call(self, command, *args):
		"""
			Synchronously call and get reply
		"""
		cmd = Command(command, *args)
		
		# send command
		with self._command_lock:
			self._command_store[cmd.id] = cmd
			self._network.send(str(cmd) + self._split)
		
		# await reply
		reply = cmd.wait()
		
		# delete command
		with self._command_lock:
			del self._command_store[cmd.id]
		
		return reply
	
	@server_call('LIST_OF_ENTITIES', decode=True)
	def list_of_entities(self, descriptions):
		self._game.set_entities([Entity(**x) for x in descriptions])

	@expose
	def NEWENT(self, data):
		decoded = json.loads(data)
		self._game.add_entity(Entity(**decoded))
	
	@server_call('ENTINFO', 'id', decode=True)
	def entity_info(self, info):
		return info

	@server_call('ENTACTION', 'id', 'action', decode=True)
	def entity_action(self, info):
		return info

	@server_call('PLAYERINFO', 'id', decode=True)
	def playerinfo(self, info):
		self._toolbar.set_cash(info['cash'])

	@expose
	def CASH(self, amount):
		self._toolbar.set_cash(int(amount))
	
	@server_call('LOGIN', 'username', 'password', decode=True)
	def login(self, info):
		self.playerid = info['id']
		self.log.debug('player id is %s', self.playerid)
		self.playerinfo(self.playerid)
	
	@server_call('PLAYERS', decode=True)
	def players(self, players):
		return players

	def player_by_id(self, id):
		return self._players.get(unicode(id), None)

	@expose
	def Hello(self):
		self.call('SET', 'ENCODER', 'json')
		try:
			self.login(username=self._username, password=self._password)
		except RuntimeError, e:
			self.log.error(e)
			self.quit()
			return
		self._players = self.players()
		self.list_of_entities()