class XSZC(unittest.TestCase): def setUp(self): self.obj = Method() self.excel = OperationExcel() self.operationJson = OperationJson() def statusCode(self, r): self.assertEqual(r.status_code, 200) self.assertEqual(r.json()['code'], 200) def isContent(self, r, row): self.statusCode(r=r) self.assertTrue(self.obj.isContent(row=row, str2=r.text)) def test_017(self): u"新增促销政策" r = self.obj.post(row=17, data=self.operationJson.getRequestsData(row=17)) self.isContent(r=r, row=17) self.excel.writeResult(17, 'pass') def test_018(self): u"新增销售价格" data = self.operationJson.getRequestsData(row=18) r = self.obj.post(row=18, data=data) self.isContent(r=r, row=18) self.excel.writeResult(18, 'pass') def test_019(self): u"新增销售订单" data = self.operationJson.getRequestsData(row=19) r = self.obj.post(row=19, data=data) self.isContent(r=r, row=19) self.excel.writeResult(19, 'pass') def test_020(self): u"新增销售出库单(直接新增商品)" data = self.operationJson.getRequestsData(row=20) r = self.obj.post(row=20, data=data) self.isContent(r=r, row=20) self.excel.writeResult(20, 'pass') def test_021(self): u"新增销售退货" data = self.operationJson.getRequestsData(row=21) r = self.obj.post(row=21, data=data) self.isContent(r=r, row=21) self.excel.writeResult(21, 'pass')
class LaGou(unittest.TestCase): def setUp(self): self.obj=Method() self.p=IsContent() self.execl=OperationExcel() self.operationJson=OperationJson() def statusCode(self,r): self.assertEqual(r.status_code, 200) self.assertEqual(r.json()['code'], 0) def isContent(self,r,row): self.statusCode(r=r) self.assertTrue(self.p.isContent(row=row,str2=r.text)) def test_laGou_001(self): '''拉钩:测试翻页''' r = self.obj.post(row=1,data=self.operationJson.getRequestsData(1)) self.isContent(r=r,row=1) self.execl.writeResult(1,'pass') def test_laGou_002(self): '''拉钩:测试关键字的职位搜索''' r =self.obj.post(row=1,data=setSo('Python开发工程师')) list1=[] for i in range(0,15): positionId=r.json()['content']['positionResult']['result'][i]['positionId'] list1.append(positionId) writePositionId(json.dumps(list1)) def test_lgGou_003(self): '''访问搜索到的每个职位的详情页信息''' for i in range(15): r=self.obj.get(url=getUrl()[i]) self.assertTrue(self.p.isContent(34,r.text))
class XSGL(unittest.TestCase): def setUp(self): self.obj = Method() self.excel = OperationExcel() self.operationJson = OperationJson() def statusCode(self, r): self.assertEqual(r.status_code, 200) self.assertEqual(r.json()['code'], 0) def isContent(self, r, row): self.statusCode(r=r) self.assertTrue(self.obj.isContent(row=row, str2=r.text)) def test_001(self): "采购订单管理" # 如果是传data,header="data_form" ,如果传json,header="json" #data的内容,放在data目录下的requestData中 r = self.obj.post(row=1, data=self.operationJson.getRequestsData(row=1), header="data_form") print(r.json()) self.isContent(r=r, row=1) self.excel.writeResult(1, "pass") def test_002(self): "采购计划单管理" r = self.obj.post(row=2, data=self.operationJson.getRequestsData(row=2), header="data_form") print(r.json()) self.isContent(r=r, row=2) self.excel.writeResult(2, "pass") def test_003(self): "采购出库管理" r = self.obj.post(row=3, data=self.operationJson.getRequestsData(row=3), header="data_form") print(r.json()) self.isContent(r=r, row=3) self.excel.writeResult(3, "pass")
class LaGou(unittest.TestCase): def setUp(self): self.obj = Method() self.p = IsContent() self.execl = OperationExcel() self.operationJson = OperationJson() def statusCode(self, r): self.assertEqual(r.status_code, 200) self.assertEqual(r.json()['result_code'], 200) def isContent(self, r, row): self.statusCode(r=r) self.assertTrue(self.p.isContent(row=row, str2=r.text)) def test_laGou_001(self): '''测试1''' r = self.obj.post(row=1, data=self.operationJson.getRequestsData(1)) print(type(self.operationJson.getRequestsData(1))) print("test_laGou_001 is:", r.text) self.isContent(r=r, row=1) self.execl.writeResult(1, 'pass')
class LaGou(unittest.TestCase): def setUp(self): self.obj = Method() self.p = IsAssert() self.excel = OperationExcel() self.operationJson = OperationJson() def tearDown(self): pass def statusCode(self, r): self.assertEqual(r.status_code, 200) # self.assertEqual(r.json()['code'], 0) def isContent(self, r, row): self.statusCode(r) self.assertTrue(self.p.isContent(row=row, str2=r.text)) def test_laGou_001(self): r = self.obj.post(row=1, data=self.operationJson.getRequestsData(1)) self.statusCode(r) print(r.text) self.isContent(r=r, row=1) self.excel.writeResult(1, 'pass') # self.assertTrue(self.p.isContent(1, str2=r.text)) def test_laGou_002(self): """测试关键字职位搜索""" r = self.obj.post(row=1, data=setSo('性能测试工程师')) # self.statusCode(r) print(r.text) # self.assertTrue(self.p.isContent(1, str2=r.text)) list1 = [] for i in range(1, 15): positionId = r.json( )['content']['positionResult']['result'][i]['positionId'] list1.append(positionId) writePositionId(json.dumps(list1)) print(list1) def test_laGou_003(self): """访问搜索到的每个职位的详细信息""" for i in range(14): print("item:%s" % (i)) r = self.obj.get(url=getUrl()[i]) self.assertTrue(self.p.isContent(row=2, str2=r.text))
class LaGou(unittest.TestCase): # log = Log() def setUp(self): self.obj = Method() self.p = IsContent() self.execl = OperationExcel() self.operationJson = OperationJson() self.log = Log() def tearDown(self): pass def statusCode(self, r): self.assertEqual(r.status_code, 200) print(r.status_code) # print(r.json()['code']) # self.assertEqual(r.json ()['code'], 200) def isContent(self, r, row): self.statusCode(r=r) self.assertTrue(self.p.isContent(row=row, str2=r.text)) def test_post_001(self): """测试post接口-直接请求""" print("test_laGou_001方法执行") self.log.info("------测试post接口-直接请求:start!---------") # print(check_user(user=jp_user,name=18821768014)) "sign为空" r = self.obj.post(row=1, data=self.operationJson.getRequestsData(row=1)) print("test_laGou_001 is:", r.text) self.log.info("获取请求结果:%s" % r.text) self.isContent(r=r, row=1) self.execl.writeResult(1, 'pass') def test_post_002(self): print("test_laGou_002方法执行") "测试post接口-参数化请求" self.log.info("------测试post接口-参数化请求:start!---------") r = self.obj.post(row=1, data=set_so_keyword1(phone='18821768014')) print("test_laGou_002 is:", r.text) self.isContent(r=r, row=1) self.execl.writeResult(1, 'pass')
class Test_Pytest(): log = Log() def setup_class(self): print('类前面,我爱你') self.obj = Method() self.p = IsContent() self.execl = OperationExcel() self.operationJson = OperationJson() self.log = Log() def teardown_class(self): print('类之后') def setup_method(self): print('方法前面') # def teardown_method(self): print('方法后') # def isContent(self,r,row): # # self.statusCode(r=r) # assert self.p.isContent(row=row, str2=r.text) @pytest.mark.usefixtures("del_title") def test_addCategory_001(self): """添加商品分类校验""" print("test_laGou_001方法执行") self.log.info("-------添加商品分类:start!---------") r = self.obj.post(row=1, data=self.operationJson.getRequestsData(row=1)) print("添加商品分类 is:", r.text) self.log.info("获取请求结果:%s" % r.text) # self.isContent(r=r, row=1) self.execl.writeResult(1, 'pass') assert r.status_code == 200 assert str(r.json()["msg"]) == "成功" print("test_addCategory_0000001 is:", r.json()["data"]["id"])
class LaGou(unittest.TestCase): def setUp(self): self.obj=Method() self.p=IsContent() self.execl=OperationExcel() self.operationJson=OperationJson() # def statusCode(self,r): # # self.assertEqual(r.status_code, 200) # self.assertEqual(r.json()['result_code'], 401) def isContent(self,r,row): # self.statusCode(r=r) self.assertTrue(self.p.isContent(row=row,str2=r.text)) def test_laGou_001(self): '''测试1''' # r = self.obj.post(row=1,data=self.operationJson.getRequestsData(1)) r = self.obj.post (row=1, data=set_so_keyword (app_id='20180829170725138653', sign='8C7DF610ECB03AEA0DA6AA64F6D8C572')) print ("test_laGou_001 is:", r.text) self.assertEqual(r.json()['result_code'], 200) self.isContent(r=r,row=1) self.execl.writeResult(1,'pass') def test_laGou_002(self): '''错误测试''' r = self.obj.post(row=2,data=self.operationJson.getRequestsData(2)) self.assertEqual(r.json()['result_code'], 403) print ("test_laGou_001 is:", r.text) self.isContent (r=r, row=2) self.execl.writeResult (2, 'pass') def test_laGou_004(self): "sign为空" r = self.obj.post(row=3,data=set_so_keyword(app_id=201808291707251386534444)) print ("test_laGou_002 is:", r.text) self.assertEqual(r.json()['result_code'], 403) self.isContent (r=r, row=3) self.execl.writeResult (3,'pass')
class Login(unittest.TestCase): def setUp(self): self.methon = WebMethon() self.config = Config() self.excel = OperationExcel() self.pm = PublicMethod() self.operationJson = OperationJson() self.iscontent = IsContent() def tearDown(self): print('测试结束') def test_Login_001(self): ''' 登陆DDOU:/api/login :return: ''' r = requests.post(url=self.config.getUrl() + self.excel.get_Url(1), json=self.operationJson.getRequestsData(1)) print(r.json()) self.assertTrue(r.json()['msg'], "成功") self.assertTrue(self.iscontent.isContent(1, r.text))
class method: def __init__(self): self.operationJson = OperationJson() self.excle = OpenationExcel() def post(self, row): try: r = requests.post(url=self.excle.get_url(row=row), data=self.operationJson.getRequestsData(row), headers=checkHeader(row=row, f1=get_headerValue(), f2=get_headerInfo()), timeout=6) return r except Exception as e: raise RuntimeError("接口请求发生异常的错误") def post2(self, row, data=None): try: r = requests.post(url=self.excle.get_url(row=row), data=data, headers=checkHeader(row=row, f1=get_headerValue(), f2=get_headerInfo()), timeout=6) return r except Exception as e: raise RuntimeError("接口请求发生异常的错误") def get(self, url, params=None): try: r = requests.get( # url=self.excle.get_url(row=row), url=url, headers=get_headerValue(), params=params, timeout=6) return r except Exception as e: raise RuntimeError("接口请求发生异常的错误")
class WebMethon(PublicMethod): def __init__(self): self.config = Config() self.excel = OperationExcel() self.public = PublicMethod() self.json = OperationJson() #=================封装请求头,s=0,未登录的请求头。s=1,已登陆的请求头============================== def getHeadersInfo( self, row, ): '''已登录的请求头''' headers = { 'Host': self.config.getHost(), #'Content-Type': self.excel.get_ParamsType(row=row), 'Accept-Encoding': 'gzip, deflate', 'Cookie': 'Hm_lvt_950d894867df0a55fbb3239fba8837ea=1588758701,1588774347,1588833146,1588856383', 'Accept': '*/*', 'User-Agent': 'DDOU/1.0.3 (iPhone; iOS 13.3.1; Scale/3.00)', 'Authorization': self.public.getFile('data', 'login', 'token'), #'Referer': self.config.getUrl()[0]+self.excel.get_Referer(row=row) } return headers def post(self, s, row, **kwargs): ''' 请求参数是json格式的post,这里读取的是excel+json文件中的数据 s=1:json格式的参数 s=2:data格式的参数 ''' if s == 1: try: r = requests.post(url=self.config.getUrl()[0] + self.excel.get_Url(row=row), json=self.json.getRequestsData(row=row), headers=self.getHeadersInfo(row=row), timeout=5) return r except Exception as e: raise RuntimeError('接口请求法生未知的错误') elif s == 2: '''请求方法是data格式的post,这里读取得是excel文件中的数据''' try: r = requests.post(url=self.excel.get_Url(row=row), data=self.excel.get_Params(row=row), headers=self.getHeadersInfo(row=row), timeout=5) return r except Exception as e: raise RuntimeError('接口请求法生未知的错误') else: print('Eorr:请检查请求参数!') def get(self, url, params=None): '''对get请求进行二次封装''' r = requests.get(url=url, params=params, headers=self.getHeadersInfo(), timeout=5) return r
class Method: def __init__(self): self.operationJson =OperationJson() self.excel = OperationExcel() self.excel_pre = OperationExcel_two() self.db=database() self.header_test = { "Host": "10.168.95.149:8022", "Content-Type": "application/json;charset=UTF-8", "Content-Length": "228", } def request_wcf(self, url,data): # headers = {'Content-Type': 'application/soap+xml; charset="UTF-8"'} url_main,url,interface = url.split(",") #print(url_main,url,interface) client = Client(url_main) client.set_options(location = url)#(location = "http://10.168.95.32:5004/FmsAPIServicesForHttpDelegate") #print(data_type,type(interface),type(data)) canshu, data_value = data.split("=", 1) # 把请求数据分成2分,用于判断是对象数据还是一般参数数据 if data_value[0]!="{": "如果接口是正常参数,一个一个赋值" request_str = "client.service."+interface+"("+data+")" print("请求接口:",request_str) result = eval(request_str) return str(result) else: "如果接口参数是对象,则需先创建对象数据" data_dict = eval(data_value) print(data_dict) request_str = "client.service."+interface+"(" + canshu + "=data_dict)" print("请求接口:",request_str) result = eval(request_str) return str(result) def get_md5(self,data): m = hashlib.md5() m.update(data.encode("utf-8")) print(m.hexdigest()[8:-8], type(m.hexdigest()[8:-8])) return m.hexdigest()[8:-8].upper() def get_authorizaiton(self,header_test,account, password): author = account + "&" + self.get_md5(account + "&" + password) header_test["Authorization"] = "Basic {}".format(author) # print(header_test) return header_test def post(self,row): # url = Config().get(self.URL) url = self.excel.getUrl(row=row) try: r = requests.post( url=url, data=self.operationJson.getRequestsData(row=row), headers=getHeadersValue(), timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误') def post_new(self,url,data,header =getHeadersValue() ): # url = Config().get(self.URL) try: r = requests.post( url=url, data=data, headers=header, timeout=600) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误') def post_with_auth(self,row,account1,password1): # url = Config().get(self.URL) header_test = { "Host": "10.168.95.149:8022", "Content-Type": "application/json;charset=UTF-8", "Content-Length": "228", } def get_md5(data): m = hashlib.md5() m.update(data.encode("utf-8")) print(m.hexdigest()[8:-8], type(m.hexdigest()[8:-8])) return m.hexdigest()[8:-8].upper() def get_authorizaiton(account, password): author = account + "&" + get_md5(account + "&" + password) header_test["Authorization"] = "Basic {}".format(author) #print(header_test) return header_test url = self.excel.getUrl(row=row) try: r = requests.post( url=url, data=self.operationJson.getRequestsData(row=row), headers=get_authorizaiton(account1,password1), timeout=6, ) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误') def get(self,row): url = self.excel.getUrl(row=row) try: r = requests.get(url=url, timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误') def get_new(self,row,header): url = self.excel.getUrl(row=row) try: r = requests.get(url=url,headers=header, timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误')