def get_login_userid(): # 查询登录测试用户userid SQL = "select tu_id from stt_user where loginname = " + "\"" + user + "\"" + ";" mysqlutil = MysqlUtil() userid = mysqlutil.mysql_getstring(SQL) return str(userid)
def member_selectDiscountActivity_id(self): A = MysqlUtil() sql = "SELECT id from biz_discount_activity WHERE version = '0' GROUP BY activity_start_time DESC LIMIT 1;" A.mysql_execute(sql) result = A.mysql_getrows(sql) A.mysql_close() return result
def member_updateMemberDeviceInfo_id(self): u"""查询修改绑定的设备信息""" A = MysqlUtil() sql = "SELECT user_id FROM biz_member_device_info WHERE id = '61';" A.mysql_execute(sql) result = A.mysql_getrows(sql) A.mysql_close() return result
class Maintain_siteCapacityInfo(unittest.TestCase): u''' 获取站点运力数据接口 ''' log = Log() mysqlutil = MysqlUtil() log.info("---获取站点运力数据接口测试---") def siteCapacityInfo(self,siteDetailId): '''一个参数: siteDetailId:string ''' ip = readConfig.ip i_port = readConfig.i_port url = "http://" + ip + ":" + i_port + "/backend/capacity/maintain/siteCapacityInfo" header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0", "X-Requested-With": "XMLHttpRequest", "Connection": "keep-alive" } par = {"siteDetailId":siteDetailId} r = requests.get(url,params=par) result = r.json() self.log.info("---获取站点运力数据接口响应:%s"%result) sql = "SELECT id FROM cap_site_detail WHERE id IS NOT NULL AND id <> '' GROUP BY id;" siteDetailIds = self.mysqlutil.mysql_getrows(sql) s_siteDetailIds = siteDetailIds.__str__() if siteDetailId in s_siteDetailIds and siteDetailId != '': self.assertEqual(result["code"], '0000') self.assertEqual(result["msg"], '接口正常') sql1 = "SELECT org_name FROM cap_organization WHERE org_code IN (SELECT site_id FROM cap_site_detail WHERE id IN ( %s ));"%siteDetailId sitename = self.mysqlutil.mysql_getrows(sql1)[0][0] self.assertEqual(result["data"]["siteName"],sitename) elif siteDetailId == '': self.assertEqual(result["code"], '0025') self.assertEqual(result["msg"], '参数不能为空') self.assertEqual(result["data"], {}) elif siteDetailId != '' and siteDetailId not in s_siteDetailIds: self.assertEqual(result["code"], '0000') self.assertEqual(result["msg"], '接口正常') self.assertEqual(result["data"], None) def test_siteinfo1(self): u'''测试获取站点运力数据接口:请求参数正确''' self.log.info("---1.请求参数正确:start!---") siteDetailId = '10' sql2 = "" self.siteCapacityInfo(siteDetailId) self.log.info("---pass---") self.log.info("") def test_siteinfo2(self): u'''测试获取站点运力数据接口:siteDetailId不存在''' self.log.info("---2.siteDetailId传入不存在:start!---") siteDetailId = 'abc' self.siteCapacityInfo(siteDetailId) self.log.info("---pass---") self.log.info("") def test_siteinfo3(self): u'''测试获取站点运力数据接口:siteDetailId传入为空''' self.log.info("---3.siteDetailId传入为空:start!---") siteDetailId = '' self.siteCapacityInfo(siteDetailId) self.log.info("---pass---") self.log.info("") if __name__ == "__main__": unittest.main()
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("")
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("")
import time, requests, datetime, json from common.mysql_pub import MysqlUtil from os import environ host = environ.get('host') user = environ.get('user') passwd = environ.get('passwd') sql_folder = environ.get('sql_folder') # host = "http://192.168.1.15:8080" # user = "******" # passwd = "111111" # sql_folder = r"C:\\Users\\Administrator\\PycharmProjects\\ecs_test\sql\\" mysql_db = MysqlUtil() s = requests.session() def sleep(n_secs): time.sleep(n_secs) def hook_sql(filename): sql_path = sql_folder + filename # 读取 sql 文件文本内容 sql = open(sql_path, 'r', encoding='utf8') sqltxts = sql.readlines() sqltxts = [x.strip() for x in sqltxts] # 去除换行符\n # 读取之后关闭文件
class Maintain_export(unittest.TestCase): u''' 站点运力列表导出接口 ''' log = Log() mysqlutil = MysqlUtil() log.info("---站点运力列表导出接口测试---") def export(self, beginTime, endTime, siteId): '''三个参数: 开始时间:beginTime,结束时间:endTime,站点id:siteId ''' ip = readConfig.ip i_port = readConfig.i_port url = "http://" + ip + ":" + i_port + "/backend/capacity/maintain/export" header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0", "X-Requested-With": "XMLHttpRequest", "Connection": "keep-alive" } par = {"beginTime": beginTime, "endTime": endTime, "siteId": siteId} r = requests.get(url, params=par) result_head = r.headers self.log.info("---站点运力列表导出接口响应头:%s" % result_head) sql = "SELECT site_id FROM cap_site_detail GROUP BY site_id;" siteids = self.mysqlutil.mysql_getrows(sql) s_siteids = siteids.__str__() if siteId in s_siteids and beginTime < endTime and beginTime != '' and endTime != '' and siteId != '': self.assertIn('.xls', result_head['Content-Disposition']) elif beginTime > endTime and beginTime != '' and endTime != '': result_body = r.json() self.log.info("---站点运力列表导出接口响应:%s" % result_body) self.assertEqual(result_body["code"], '0026') self.assertEqual(result_body["msg"], '未查询到数据') sql2 = "SELECT * FROM cap_site_detail WHERE site_id IN (%s) AND site_date >= '%s' AND site_date <= '%s';" % ( siteId, beginTime, endTime) query_count = self.mysqlutil.mysql_getcounts(sql2) self.assertEqual(len(result_body["data"]), query_count) self.assertEqual(result_body["data"], {}) elif beginTime == '' or endTime == '' or siteId == '': result_body = r.json() self.log.info("---站点运力列表导出接口响应:%s" % result_body) self.assertEqual(result_body["code"], '0025') self.assertEqual(result_body["msg"], '参数不能为空') self.assertEqual((result_body["data"]), {}) def test_export1(self): u'''测试站点运力列表导出接口:请求参数正确''' self.log.info("---1.请求参数正确:start!---") beginTime = '2017-08-25' endTime = '2017-08-31' siteId = '22' self.export(beginTime, endTime, siteId) self.log.info("---pass---") self.log.info("") def test_export2(self): u'''测试站点运力列表导出接口:beginTime大于endTime''' self.log.info("---2.beginTime大于endTime:start!---") beginTime = '2017-08-31' endTime = '2017-08-25' siteId = '22' self.export(beginTime, endTime, siteId) self.log.info("---pass---") self.log.info("") def test_export3(self): u'''测试站点运力列表导出接口:beginTime传入为空''' self.log.info("---3.beginTime传入为空:start!---") beginTime = '' endTime = '2017-08-31' siteId = '22' self.export(beginTime, endTime, siteId) self.log.info("---pass---") self.log.info("") def test_export4(self): u'''测试站点运力列表导出接口:endTime传入为空''' self.log.info("---4.endTime传入为空:start!---") beginTime = '2017-08-25' endTime = '' siteId = '22' self.export(beginTime, endTime, siteId) self.log.info("---pass---") self.log.info("") def test_export5(self): u'''测试站点运力列表导出接口:siteId传入为空''' self.log.info("---5.siteId传入为空:start!---") beginTime = '2017-08-25' endTime = '2017-08-31' siteId = '' self.export(beginTime, endTime, siteId) self.log.info("---pass---") self.log.info("") def test_export6(self): u'''测试站点运力列表导出接口:beginTime,endTime和siteId传入为空''' self.log.info("---6.beginTime,endTime和siteId传入为空:start!---") beginTime = '' endTime = '' siteId = '' self.export(beginTime, endTime, siteId) self.log.info("---pass---") self.log.info("")
class Maintain_siteinfo(unittest.TestCase): u''' 站长站点信息接口 ''' log = Log() mysqlutil = MysqlUtil() log.info("---站长站点信息接口测试---") def siteinfo(self, userCode): '''一个参数: 登录用户code(工号):userCode ''' ip = readConfig.ip i_port = readConfig.i_port url = "http://" + ip + ":" + i_port + "/backend/capacity/maintain/siteInfo" header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0", "X-Requested-With": "XMLHttpRequest", "Connection": "keep-alive" } par = {"userCode": userCode} r = requests.get(url, params=par) result = r.json() self.log.info("---站长站点信息接口响应:%s" % result) sql = "SELECT CODE FROM cap_courier WHERE CODE IS NOT NULL AND CODE <> '' GROUP BY CODE;" userCodes = self.mysqlutil.mysql_getrows(sql) s_userCodes = userCodes.__str__() if userCode in s_userCodes and userCode != '': self.assertEqual(result["code"], '0000') self.assertEqual(result["msg"], '接口正常') sql1 = "SELECT co.org_name FROM cap_organization co LEFT JOIN cap_courier cc ON co.`org_code` = cc.`org_code` WHERE cc.code = '%s';" % userCode orgname = self.mysqlutil.mysql_getrows(sql1)[0][0] self.assertEqual(result["data"]["orgName"], orgname) elif userCode == '': self.assertEqual(result["code"], '0025') self.assertEqual(result["msg"], '参数不能为空') self.assertEqual(result["data"], {}) elif userCode != '' and userCode not in s_userCodes: self.assertEqual(result["code"], '0000') self.assertEqual(result["msg"], '接口正常') self.assertEqual(result["data"], None) def test_siteinfo1(self): u'''测试站长站点信息接口:请求参数正确''' self.log.info("---1.请求参数正确:start!---") userCode = 'CB00006447' self.siteinfo(userCode) self.log.info("---pass---") self.log.info("") def test_siteinfo2(self): u'''测试站长站点信息接口:登录用户code(工号)不存在''' self.log.info("---2.userCode传入不存在:start!---") userCode = 'abc' self.siteinfo(userCode) self.log.info("---pass---") self.log.info("") def test_siteinfo3(self): u'''测试站长站点信息接口:userCode传入为空''' self.log.info("---3.userCode传入为空:start!---") userCode = '' self.siteinfo(userCode) self.log.info("---pass---") self.log.info("") if __name__ == "__main__": unittest.main()