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()
class ColumnList(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.EXCEL = Excel_util( r'C:\Users\Administrator\Desktop\Interface_testcase.xls') self.log = Log() def test_ColumnList(self): u'测试专栏列表接口' self.log.info('开始测试专栏列表接口....') url = 'http://api.lesson.sunnycare.cc/v1/spe/list' json_data = { "timestamp": str(int(time.time())), "token": self.uid_token, "time": "0" } #加入nonce参数 json_data['nonce'] = get_digit() json_data['sign'] = get_sign(json_data) print(json_data) r = self.s.post(url, headers=self.header, json=json_data, verify=False) self.EXCEL.write_value(4, 5, r.json()) print(r.json()) self.assertEqual('请求成功.', r.json()['note']) data = r.json()['data'] content = data['list'] #专栏列表的内容 self.assertTrue(len(content) >= 1, msg='专栏列表为空,肯定有问题!') spe_codes = {} n = 1 for i in r.json()['data']['list']: spe_codes['spe_code' + str(n)] = i['spe_code'] n += 1 self.EXCEL.write_value(4, 6, (spe_codes)) self.log.info('专栏列表接口测试结束!!') def tearDown(self): self.s.close()
class TestInvoice(unittest.TestCase): def setUp(self): self.s = requests.session() self.lgin = LG(self.s) #实例化登录类 self.uid_token = self.lgin.login() #登录 self.excel = Excel_util( r'C:\Users\Administrator\Desktop\Interface_testcase.xls') 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': '1.3', 'Authorization': 'Basic YXBpTGFudGluZ0BtZWRsYW5kZXIuY29tOkFwaVRobWxkTWxkQDIwMTM=', 'Connection': 'keep-alive' } def test_invoice(self): u'测试我的发票获取接口' url = 'http://api.exam.sunnycare.cc/v1/myInvoices' json_data2 = {"token": self.uid_token} #请求的参数上一接口返回的token print(json_data2) r = self.s.post(url, headers=self.header, json=json_data2) self.excel.write_value(6, 5, r.json()) self.assertEqual('请求成功.', r.json()['note'], msg='请求我的发票接口没有成功') list1 = r.json()['data']['list'] global d d = {} x = 1 for i in list1: d['code' + str(x)] = i['code'] x += 1 self.excel.write_value(6, 6, d) def test_invoice_detail(self): u'测试查看发票详情接口' url = 'http://api.exam.sunnycare.cc/v1/myInvoiceDetail' #for循环一次去请求每张发票详情 for value in d.values(): print('value', value) json_data = {"token": self.uid_token, "inv_code": value} r = self.s.post(url, headers=self.header, json=json_data) print(r.json()) self.assertEqual('请求成功.', r.json()['note'], msg='发票详情获取失败!') def tearDown(self): self.s.close()
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 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()#实例化日志的类 self.excel = Excel_util(r'C:\Users\Administrator\Desktop\interface_testcase.xls')
class ColumnInfo(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.EXCEL = Excel_util( r'C:\Users\Administrator\Desktop\Interface_testcase.xls') def testColumnInfo(self): u'测试专栏信息接口' url = 'http://api.lesson.sunnycare.cc/v1/spe' #将所有专栏的code放进list column_list = json.loads(self.EXCEL.read_value(4, 6)) print(column_list) new_column_list = [] for x in column_list.values(): new_column_list.append(x) #详情介绍链接 detail_links = [] for i in new_column_list: json_data = { "spe_code": i, "timestamp": str(int(time.time())), "token": self.uid_token, "nonce": get_digit() } json_data['sign'] = get_sign(json_data) r = self.s.post(url, headers=self.header, json=json_data, verify=False) #print(r.json()) detail_links.append(r.json()['data']['detail_link']) self.assertEqual('请求成功.', r.json()['note'], msg='专栏信息返回的状态不是请求成功,有问题!') #下面测试专栏介绍的链接 for link in detail_links: r2 = self.s.get(link, verify=False) self.assertEqual(200, r2.status_code, msg='专栏介绍链接返回状态码不是200!') def tearDown(self): self.s.close()
class Tickets(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()#实例化日志的类 self.excel = Excel_util(r'C:\Users\Administrator\Desktop\Interface_testcase.xls') def test_tickets(self): u'我的会议门票接口' self.log.info('开始测试会议门票接口!') url = 'http://api.meet.sunnycare.cc/v2/ticket/mine' json_data = { "token":self.uid_token, "timestamp": str(int(time.time())), "nonce": get_digit() } #入参加密 json_data['sign'] = get_sign(json_data) r = self.s.post(url,headers = self.header,json=json_data) self.log.info('会议门票返回的结果是:%s' % r.json()) self.assertEqual('请求成功.',r.json()['note']) #取出ticket_code供门票详情接口调用 ticket_code = r.json()['data']['content'] code = {} j = 1 for i in ticket_code: code['ticket_co'+str(j)] = (i['ticket_order_code']) self.excel.write_value(16,6,code) self.log.info('会议门票接口测试结束!') def tearDown(self): self.s.close()
class Contact(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()#实例化日志的类 self.excel = Excel_util(r'C:\Users\Administrator\Desktop\interface_testcase.xls') def test_contact_list(self): u'联系人列表接口' self.log.info('参会人列表接口测试开始') url = 'http://api.meet.sunnycare.cc/v2/contact/records' json_data = { "token":self.uid_token, "nonce": get_digit(), "timestamp": str(int(time.time())) } #入参加密 json_data['sign'] = get_sign(json_data) r = self.s.post(url,headers = self.header,json=json_data) self.log.info('参会人列表返回内容是:%s' % r.json()) conten = r.json()['data']['content'] contact_code = {} j = 1 for i in conten: contact_code['contact_code'+str(j)] = i['contact_code'] j += 1 #将contact_code写入excel供其他借口调用 self.excel.write_value(15,6,contact_code) self.log.info('参会人列表接口测试结束!') def tearDown(self): self.s.close()
class Con(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() #实例化日志的类 self.exel = Excel_util( r'C:\Users\Administrator\Desktop\interface_testcase.xls') def test_delete_contacts(self): u'删除联系人接口' self.log.info('删除联系人接口测试开始!') url = 'http://api.meet.sunnycare.cc/v2/contact/del' #读取contact_code code = self.exel.read_value(15, 6) be_code = json.loads(code) #如果非空 if code: for v in be_code.values(): json_data = { "token": self.uid_token, "contact_code": v, #读取excel中的code, "timestamp": str(int(time.time())), "nonce": get_digit() } #入参加密 json_data['sign'] = get_sign(json_data) r = self.s.post(url, headers=self.header, json=json_data) self.log.info('删除该条联系人返回结果是:%s' % r.json()) self.assertEqual('请求成功.', r.json()['note']) else: self.log.warning('参会人code为空') self.log.info('删除联系人接口测试结束!!') def tearDown(self): self.s.close()
def setUpClass(cls): cls.s = requests.session() cls.lgin = LG(cls.s) #实例化登录类 cls.uid_token = cls.lgin.login() #直接取第二部登录 cls.header = { 'RequestClient': '1', 'RequestApp': '3', 'VersionForApp': '2.1.0', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108 Safari/537.36 2345Explorer/8.0.0.13547', 'Cache-Control': 'max-age=0', 'Upgrade-Insecure-Requests': '1', 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/json; charset=utf-8', #'Content-Length': '55', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip' } cls.log = Log() #实例化日志的类 cls.excel = Excel_util( r'C:\Users\Administrator\Desktop\Interface_testcase.xls')
class Contact(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() #实例化日志的类 self.excel = Excel_util( r'C:\Users\Administrator\Desktop\interface_testcase.xls') def test_update_contacts01(self): u'更新联系人-更新名字' #先读取一个参会人code然后更新其信息 read_code = self.excel.read_value(15, 6) be_use_code = json.loads(read_code) update_url = 'http://api.meet.sunnycare.cc/v2/contact/update' json_data = { "token": self.uid_token, "name": '更新后的名字', "contact_code": be_use_code['contact_code1'], "phone": '13605246089', "sex": '0', "address": '江苏省南京市江宁区', "company": '南京麦澜德', "job": 'xxx', "job_title": 'sss', "is_from_base": '1', "timestamp": str(int(time.time())), "nonce": get_digit() } #入参加密 json_data['sign'] = get_sign(json_data) r = self.s.post(update_url, headers=self.header, json=json_data) self.assertEqual(200, r.json()['code']) def test_update_contacts02(self): u'更新联系人-更新号码' read_code = self.excel.read_value(15, 6) be_use_code = json.loads(read_code) update_url = 'http://api.meet.sunnycare.cc/v2/contact/update' json_data = { "token": self.uid_token, "name": '更新后的名字', "contact_code": be_use_code['contact_code1'], "phone": '13888888888', "sex": '0', "address": '江苏省南京市江宁区', "company": '南京麦澜德', "job": 'xxx', "job_title": 'sss', "is_from_base": '1', "timestamp": str(int(time.time())), "nonce": get_digit() } #入参加密 json_data['sign'] = get_sign(json_data) r = self.s.post(update_url, headers=self.header, json=json_data) self.assertEqual(200, r.json()['code']) def test_update_contacts03(self): u'更新联系人-更新名字' read_code = self.excel.read_value(15, 6) be_use_code = json.loads(read_code) update_url = 'http://api.meet.sunnycare.cc/v2/contact/update' json_data = { "token": self.uid_token, "name": '更新后的名字2', "contact_code": be_use_code['contact_code1'], "phone": '13888888888', "sex": '0', "address": '北京市江宁区天元东路122号', "company": '南京麦澜德', "job": 'xxx', "job_title": 'sss', "is_from_base": '1', "timestamp": str(int(time.time())), "nonce": get_digit() } #入参加密 json_data['sign'] = get_sign(json_data) r = self.s.post(update_url, headers=self.header, json=json_data) self.assertEqual(200, r.json()['code']) def tearDown(self): self.s.close()
class Trian_record(unittest.TestCase): def setUp(self): self.s = requests.session() self.lgin = LG(self.s) #实例化登录类 self.uid_token = self.lgin.get_token() #直接取账号登录的token #self.auto_login_token = self.lgin.get_autologin_token() #取自动登录的token self.header = { 'User-Agent': 'LanTingDoctor/2.0.2 (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() self.excel = Excel_util( r'C:\Users\Administrator\Desktop\Interface_testcase.xls') def test_get_user_trian_record(self): #测试前提是该医生有已绑定的用户 u'医生根据日期查看用户训练记录接口' self.log.info('开始测试医生根据日期查看用户训练记录接口.....') #'这是获取已绑定的列表' url = 'http://api.rih.sunnycare.cc/API/V1/DoctorToUserReleationShip/getReleathionShipInfo' json_data = {"token": self.uid_token} r = self.s.post(url, headers=self.header, json=json_data) Patients = r.json()['data'] User_UID = [] for i in Patients: User_UID.append(i['UserUID']) print('当前医生绑定的用户的User_UID是:', User_UID) #判断当前医生是否有绑定的用户来执行不同操作 if len(User_UID) >= 1: #如果有绑定的用户则: url2 = 'http://api.rih.sunnycare.cc/API/V1/UserTrainRecord/getUserTrainRecordByDoctorAndYearMonth' #列表存的是月份 L = ['01', '02', '03', '04', '05', '06'] for i in L: json_data2 = { "userUID": "hms7W3a1nG54IeBD6C9qtiuw82TjZVMQ", "year": "2018", "token": self.uid_token, "month": i } r2 = self.s.post(url2, headers=self.header, json=json_data2) print(r2.json()) self.assertEqual(200, r2.json()['code']) else: self.log.warning('该医生还没有绑定的用户!') self.log.info('医生根据日期查看用户训练记录接口测试结束!!') def test_user_plan_trian_record(self): u'医生查看用户某一方案的治疗记录' self.log.info('开始测试医生查看用户某一方案训练记录接口.....') #'这是获取已绑定的列表' url = 'http://api.rih.sunnycare.cc/API/V1/DoctorToUserReleationShip/getReleathionShipInfo' json_data = {"token": self.uid_token} r = self.s.post(url, headers=self.header, json=json_data) Patients = r.json()['data'] User_UID = [] for i in Patients: User_UID.append(i['UserUID']) print('当前医生绑定的用户的User_UID是:', User_UID) #判断当前医生是否有绑定的用户来执行不同操作 if len(User_UID) >= 1: #将excel中courseid 读取出来 read_course_id = self.excel.read_value(11, 6) #将json转换成可用的dict need_course_id = json.loads(read_course_id) print(need_course_id) for c in need_course_id.values(): url3 = 'http://api.rih.sunnycare.cc/API/V1/UserTrainRecord/getUserTrainRecordByCourseUIDForDoctor' json_data3 = { "token": self.uid_token, "userUID": User_UID[0], "courseUID": c } r3 = self.s.post(url3, headers=self.header, json=json_data3) #断言结果 self.assertEqual(200, r3.json()['code']) else: self.log.warning('该医生还没有绑定的用户!') self.log.info('医生查看用户某一方案训练记录接口测试结束!!') def tearDown(self): self.s.close()
class Trian(unittest.TestCase): def setUp(self): self.s = requests.session() self.lgin = LG(self.s) #实例化登录类 self.uid_token = self.lgin.get_token() #直接取账号登录的token self.auto_login_token = self.lgin.get_autologin_token() #取自动登录的token self.header = { 'User-Agent': 'LanTingDoctor/2.0.2 (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() self.excel = Excel_util( r'C:\Users\Administrator\Desktop\Interface_testcase.xls') def test_get_user_plan(self): u'医生获取用户训练方案接口' self.log.info('开始测试医生查看用户训练方案接口.....') #'这是获取已绑定的列表' url = 'http://api.rih.medohealth.com/API/V1/DoctorToUserReleationShip/getReleathionShipInfo' json_data = {"token": self.auto_login_token} r = self.s.post(url, headers=self.header, json=json_data) Patients = r.json()['data'] User_UID = [] for i in Patients: User_UID.append(i['UserUID']) print(User_UID) #判断当前医生是否有绑定的用户来执行不同操作 if len(User_UID) >= 1: #当绑定不为空时,医生再去获取用户的方案 for id in User_UID: url_2 = 'http://api.rih.medohealth.com/API/V1/UserTrainCourse/getUserTrainCourseByDoctor' json_data_2 = {"token": self.auto_login_token, "userUID": id} r2 = self.s.post(url_2, headers=self.header, json=json_data_2) self.assertEqual(200, r2.json()['code']) plans = r2.json()['data'] #将方案的course id写入excel供调用 course_ids = {} n = 1 for p in plans: #print(p) course_ids['corse_id_' + str(n)] = p['utcUID'] n += 1 self.excel.write_value(11, 6, course_ids) else: self.log.warning('该医生还没有绑定的用户!') self.log.info('医生查看用户训练方案接口测试结束!') def test_get_doctor_plan(self): u'医生获取训练方案接口' self.log.info('开始测试医生的训练方案接口.....') url = 'http://api.rih.medohealth.com/API/V1/DoctorTrainCourse/getTrainCourseForDoctor' json_data = {"token": self.auto_login_token} r = self.s.post(url, headers=self.header, json=json_data) print(r.json()) self.assertEqual(200, r.json()['code']) self.log.info('医生的训练方案接口测试结束!!') def tearDown(self): self.s.close()
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()
class Meet(unittest.TestCase): def setUp(self): #banner获取接口 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() self.EXCEL = Excel_util(r'C:\Users\Administrator\Desktop\Interface_testcase.xls') def test_getbanner(self): u'测试获取banner链接接口' self.log.info('----------开始测试获取banner接口-----------') url = 'http://api.meet.sunnycare.cc/v2/banner' json_data = { "token":self.uid_token, 'timestamp': str(int(time.time())), 'nonce':get_digit() } json_data['sign'] = get_sign(json_data) r = self.s.post(url=url,headers = self.header,json=json_data) self.log.info('返回的内容是:%s' % r.json()) try: self.assertEqual('请求成功.',r.json()['note']) self.assertEqual(200,r.json()['code']) self.log.info('接口返回状态成功!') except Exception as e: self.log.error('请求失败,原因是:%s' % e) raise AssertionError #取出json中banner链接依次进行get links = r.json()['data'] for link in links: super_link = link['image'] r2 = self.s.get(url=super_link,headers = self.header) try: self.assertEqual(200,r2.status_code) self.log.info('banner链接请求成功') except Exception as e: self.log.error('banner链接请求失败,原因:%s' % e) raise AssertionError self.log.info('----------banner接口测试结束-----------') def test_get_meets(self): u'测试获取会议接口' url = 'http://api.exam.wrightin.com/v1/meetNew' self.log.info('------开始获取会议接口测试-------') json_data = { "token":self.uid_token, "time":"0" } r = self.s.post(url,headers = self.header,json=json_data) #判断返回状态 #print(r.json()) try: self.assertEqual('请求成功.',r.json()['note']) self.log.info('获取会议接口返回状态成功') except Exception as e: self.log.error('返回状态不成功,原因:%s' % e) raise AssertionError #判断会议内容不为空 meet_list = r.json()['data']['list'] try: self.assertLessEqual(1,len(meet_list)) self.log.info('会议内容不为空') except Exception as e: self.log.error('会议内容为空。原因:%s' % e) self.log.info('------获取会议接口测试结束-------') def test_meet_info(self): u'测试每个具体的会议信息' self.log.info('=========开始测试会议信息接口==========') #要先获取到每个会议的code url_1 = 'http://api.meet.sunnycare.cc/v2/meet/records' json_data_1 = { "token":self.uid_token, "time":"0", 'timestamp': str(int(time.time())), 'nonce': get_digit() } json_data_1['sign'] = get_sign(json_data_1) #先获取会议列表 r1 = self.s.post(url_1,headers = self.header,json=json_data_1) #从会议列表中取会议code response = r1.json()['data']['list'] codes = [] for i in response: codes.append(i['code']) #print('code::::',codes) #循环对每一个会议code获取会议信息 url_2 = 'http://api.meet.sunnycare.cc/v2/meet' #创建考试code list exam_codes = [] for code in codes: json_data_2 = { "token":self.uid_token, "meet_code":code, 'timestamp': str(int(time.time())), 'nonce': get_digit() } json_data_2['sign'] = get_sign(json_data_2) r2 = self.s.post(url_2,headers = self.header,json=json_data_2)#json_data可以共用 #print(r2.json()) #断言每个会议信息的返回状态 try: self.assertEqual('请求成功.',r2.json()['note']) self.log.info('会议信息返回状态成功') except Exception as e: self.log.error('会议信息返回状态失败,原因:%s' % e) raise AssertionError #获取试卷code作为关联参数 d = r2.json()['data'] exam_codes.append(d['exam_code']) #去除exam列表中的空元素 new_exam_codes = [] for i in exam_codes: if i != '': new_exam_codes.append(i) print('exam code:' ,new_exam_codes) #将exam code 以字典格式写入excel D = {} x = 1 for i in new_exam_codes: D['exam_code'+ str(x)] = i x += 1 self.EXCEL.write_value(3,5,json.dumps(D)) self.log.info('=========测试会议信息接口结束==========') def test_exam_msg(self): u'测试获取考试信息 接口' self.log.info('-----------开始测试获取考试信息 接口-----------') #之前写入excel是str类型,现在转换为dict类型 exam_codes = json.loads(self.EXCEL.read_value(3,5)) self.log.info('读取的考试code是:%s' % exam_codes) url = 'http://api.exam.sunnycare.cc/v1/examMsgByMeetCode' #循环字典的value作为examcode for value in exam_codes.values(): json_data = { "token":self.uid_token, "examcode":value, "userid":"107dfd1c1ade4a0f820e4897491710c6" } r = self.s.post(url,headers=self.header,json=json_data) try: self.assertEqual('请求成功.',r.json()['note']) self.log.info('考试信息获取成功!') except Exception as e: self.log.error('考试信息获取失败,原因是:%s' % e) raise AssertionError self.log.info('-----------开始测试获取考试信息 接口测试结束!-----------') def tearDown(self): self.s.close()
class Comment(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_comment01(self): u'测试评论接口-评论内容正常' self.log.info('开始测试评论渟说接口-评论内容正常') url = get_content('sns_base_url') + '/v1/comment/add' #读取关联参数-推荐的动态的id read_recommened_ids = self.excel.read_value(12, 6) feed_ids = json.loads(read_recommened_ids) L = [] for i in feed_ids.values(): L.append(i) json_data = { "id": L[0], "type": "1", "token": self.auto_login_token, "text": "很棒!" } r = self.s.post(url, headers=self.header, json=json_data) self.log.info('评论feed返回的内容是:%s' % r.json()) self.assertEqual(200, r.json()['code']) self.assertEqual('评论成功.', r.json()['note']) self.log.info('评论渟说接口测试结束\n') def test_comment02(self): u'测试评论接口-评论内容为空' self.log.info('开始测试评论渟说接口-评论内容为空') url = get_content('sns_base_url') + '/v1/comment/add' #读取关联参数-推荐的动态的id read_recommened_ids = self.excel.read_value(12, 6) feed_ids = json.loads(read_recommened_ids) L = [] for i in feed_ids.values(): L.append(i) json_data = { "id": L[0], "type": "1", "token": self.auto_login_token, "text": "" } r = self.s.post(url, headers=self.header, json=json_data) self.log.info('评论为空feed返回的内容是:%s' % r.json()) self.assertEqual(200, r.json()['code']) self.assertEqual('text 的长度要求为 1 - 800.', r.json()['note']) self.log.info('评论渟说-评论内容为空测试结束\n') def test_comment03(self): u'删除评论接口' self.log.info('开始测试删除评论接口') #删除评论接口 url = get_content('sns_base_url') + '/v1/comment/delete' #评论记录接口 pre_url = get_content('sns_base_url') + '/v1/comment/records' #读取关联参数-推荐的动态的id read_recommened_ids = self.excel.read_value(12, 6) feed_ids = json.loads(read_recommened_ids) L = [] for i in feed_ids.values(): L.append(i) pre_json_data = { "token": self.auto_login_token, "id": L[0], "time": 0, "page": 1 } respon = self.s.post(pre_url, headers=self.header, json=pre_json_data) comment = respon.json()['data']['content'] #获取评论id comment_id = [] for x in comment: comment_id.append(x['comment_id']) #循环删除评论 for y in comment_id: json_data = {"token": self.auto_login_token, "comment_id": y} r = self.s.post(url, headers=self.header, json=json_data) self.log.info('删除评论feed返回的内容是:%s' % r.json()) self.assertEqual(200, r.json()['code']) self.assertEqual('删除评论成功.', r.json()['note']) self.log.info('删除评论接口测试结束\n') def tearDown(self): self.s.close()
class Mystudy(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/2.0.2 (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() self.excel = Excel_util(r'C:\Users\Administrator\Desktop\Interface_testcase.xls') def test_mystudy(self): u'测试我的学习接口' self.log.info('-----开始测试测试我的学习接口-----') url = 'http://api.lesson.sunnycare.cc/v1/learns' json_data = { "token":self.uid_token, "time": "0", "timestamp": str(int(time.time())), "nonce": get_digit() } json_data['sign'] = get_sign(json_data) r = self.s.post(url,headers = self.header,json=json_data,verify=False) print(r.json()) self.assertEqual('请求成功.',r.json()['note']) lessons = r.json()['data']['list'] #定义全局变量 学习code global study_codes study_codes = [] for i in lessons: study_codes.append(i['code']) print('study_codes: ',study_codes) #课程code lesson_codes = [] for x in lessons: lesson_codes.append(x['lesson_code']) print('lesson_codes',lesson_codes) #创建字典 写入excel m = {} j = 1 for z in lesson_codes: m['lessoncode'+ str(j)] = z j += 1 self.excel.write_value(7,6,m) self.log.info('----测试我的学习接口结束----') def test_add_study_chap(self): u'测试增加课程的学习进度接口' self.log.info('====开始测试增加课程的学习进度接口=====') #先通过课程接口来获取章节 url = 'http://api.lesson.sunnycare.cc/v1/lesson' lesson_codes = json.loads(self.excel.read_value(7,6)) #定义全局变量 global chap_codes chap_codes = [] for value in lesson_codes.values(): json_data = { "lesson_code":value, "token":self.uid_token, "timestamp": str(int(time.time())), "nonce": get_digit() } json_data['sign'] = get_sign(json_data) r = self.s.post(url,headers = self.header,json=json_data,verify=False) #断言,我的学习中的每一个课程的标签都应是‘已加入学习’ print(r.json()) self.assertEqual('已加入学习',r.json()['data']['btn'][0]['btn_name']) #将chap_code 加入chap_codes列表 for y in (r.json()['data']['chap_list']): chap_codes.append(y['chap_code']) print('chap_codes:',chap_codes) url_2 = 'http://api.lesson.sunnycare.cc/v1/learn/chapadd' for i in chap_codes: json_data2 = { "chap_code":i, "timestamp":str(int(time.time())), "token":self.uid_token, "nonce": get_digit() } json_data2['sign'] = get_sign(json_data2) r2 = self.s.post(url_2,headers = self.header,json=json_data2,verify=False) self.assertEqual('请求成功',r2.json()['note'],msg='增加课程的学习进度失败') self.log.info('====测试增加课程的学习进度接口结束=====') ''' def test_remove_study(self): u'这是测试取消加入学习接口' self.log.info('-----开始测试测试取消加入学习接口--------') url = 'https://api.lesson.wrightin.com/v1/learn/remove' for i in study_codes: json_data = { "timestamp":str(time.time()), "learn_code":i, "token":self.uid_token } try: r2 = self.s.post(url,headers = self.header,json=json_data) self.assertEqual('请求成功',r2.json()['note']) self.log.info('取消加入学习成功') except Exception as e: self.log.error('取消介入学习失败。原因:%s' % e) self.log.info('-------测试取消加入学习接口结束------') ''' def tearDown(self): self.s.close()
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_user_feed01(self): u'测试发布文字-不发布到圈子-参数正常' self.log.info('测试发布文字接口-不发布到圈子') url = get_content('sns_base_url') + '/v1/feed/add' json_data = {"token": self.auto_login_token, "text": "你知道我在等你吗"} 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_user_feed02(self): u'获取用户动态接口-参数正常' self.log.info('测试用户动态接口-参数正常') url = get_content('sns_base_url') + '/v1/user/feed' json_data = {"user_id": "U00014", "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不为空 con = r.json()['data']['content'] L = [] for i in con: L.append(i['id']) #print(i['id']) #print('ids:',L) d = {} n = 1 for x in L: d['feed_id-' + str(n)] = x n += 1 self.excel.write_value(12, 6, d) self.log.info('测试用户动态接口-参数正常情况结束!\n') time.sleep(2) def test_user_feed03(self): u'feed详情接口-参数正常' url = get_content('sns_base_url') + '/v1/feed/record' self.log.info('开始测试feed详情接口') 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 = {"feed_id": x, "token": self.auto_login_token} r = self.s.post(url, headers=self.header, json=json_data) self.log.info('%s详情返回的内容:%s' % (x, r.json())) #self.assertEqual(200,r.json()['code']) self.assertEqual('请求成功', r.json()['note']) self.assertTrue(r.json()['data']) #判断data不为空 self.log.info('feed详情接口测试结束!\n') def test_user_feed04(self): u'删除动态接口-参数正常' self.log.info('测试删除动态接口-参数正常') url = get_content('sns_base_url') + '/v1/feed/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 = {"token": self.auto_login_token, "feed_id": x} #需要保留一个动态不删除,后面的接口要用到这条动态中的图片地址 if json_data['feed_id'] == 'F00083': pass else: r = self.s.post(url, headers=self.header, json=json_data) self.log.info('%s返回的内容是:%s' % (x, r.json())) self.assertEqual(200, r.json()['code']) self.log.info('测试删除动态接口-参数正常情况测试结束!\n') def tearDown(self): self.s.close()
class Screening(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_screening_price(self): u'获取筛查价格接口' self.log.info('开始测试筛查价格接口!') url = 'http://api.rih.sunnycare.cc/API/V1/UserAssessRecord/screeninfo' json_data = { "token":self.auto_login_token } r = self.s.post(url,headers = self.header,json=json_data) self.log.info('筛查价格返回内容是:%s' % r.json()) try: self.assertEqual(200,r.json()['code']) except Exception as e: print(e) raise AssertionError self.log.info('筛查价格接口测试结束!') def test_get_report01(self): '查看我的筛查/评估报告列表' self.log.info('测试查看评估筛查报告列表接口:') url = 'http://api.rih.sunnycare.cc/API/V1/UserAssessRecord/getUserAssessRecordByUserID' json_data = { "token": self.auto_login_token, "timestamp": int(time.time()), "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']) #取出报告id写入excel id = r.json()['data']['content'][0]['local_id'] self.excel.write_value(17,6,id) self.log.info('查看评估筛查报告接口测试结束!') def test_get_assess_count(self): u'获取可用评估次数接口' self.log.info('测试可用评估次数接口:') url = 'http://api.rih.sunnycare.cc/API/V1/UserAssessRecord/assesscount' json_data = { "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.log.info('可用评估次数接口测试结束!') def test_Assess_price(self): u'获取评估价格接口' self.log.info('开始测试评估价格接口:') url = 'http://api.rih.sunnycare.cc/API/V1/UserAssessRecord/assessinfo' json_data = { "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.log.info('评估价格接口测试结束') def test_get_report02(self): u'查看评估/筛查详情接口' self.log.info('查看评估/筛查详情接口') url = 'http://api.rih.sunnycare.cc/API/V1/UserAssessRecord/getUserAssessRecord' #读取报告id作为入参 read_id = self.excel.read_value(17,6) json_data = { "token": self.auto_login_token, "id": read_id } r = self.s.post(url,headers = self.header,json=json_data) self.log.info('查看报告详情返回:%s' % r.json()) self.assertEqual(200,r.json()['code']) self.log.info('查看评估/筛查详情接口结束!!') def tearDown(self): self.s.close()