def setup_class(self): print('类前面,我爱你') self.obj = Method() self.p = IsContent() self.execl = OperationExcel() self.operationJson = OperationJson() self.log = Log()
def setUp(self): self.methon = WebMethon() self.config = Config() self.excel = OperationExcel() self.pm = PublicMethod() self.operationJson = OperationJson() self.iscontent = IsContent()
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", }
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 Method: def __init__(self): self.excel=OperationExcel() self.operationJson=OperationJson() def post(self,row): """参数data不存在变量""" try: r=requests.post(url=self.excel.get_Url(row=row), data=self.operationJson.get_json_data(row=row), headers=getHeadersValue()) return r except Exception as e: raise RuntimeError('接口请求发生异常') pass def post1(self,row,data): """参数data中存在变量""" try: r=requests.post(url=self.excel.get_Url(row=row), data=data, headers=getHeadersValue()) return r except Exception as e: raise RuntimeError('接口请求发生异常')
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=IsContent() self.excel=OperationExcel() self.json=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) # 注意要给statusCode传数据 self.assertTrue(self.p.isContent(row=row,str2=r.text)) def test_laGou_001(self): '''拉勾:测试翻页,第一页''' r=self.obj.post(row=1,data=self.json.getRequestData(row=1)) #obj这种写法的原理是什么,见setup方法 print(r.text) self.isContent(r=r,row=1) #为什么不是写成self.p.isContent(r=r,row=1)??? self.excel.writeResult(1,'pass') def test_laGou_002(self,row=2): '''拉勾:测试翻页,第二页''' r=self.obj.post(2) #obj这种写法的原理是什么,见setup方法 self.isContent(r=r,row=row) self.excel.writeResult(2,'pass') #如果上面的断言失败了,pass就不会被写进文件中了 def test_laGou_003(self, row=3): '''拉勾:测试翻页,传入不同类型的搜索关键字,替换json中的数据进行测试''' r = self.obj.post(row=3,data=setSo('性能测试工程师')) print(r.text) list1=[] for i in range(0,15): # 0< <16 positionId=r.json()['content']['positionResult']['result'][i]['positionId'] list1.append(positionId) writePositionId(json.dumps(list1)) print(list1) # self.isContent(r=r, row=row) def test_laGou_004(self, row=4): '''拉勾:访问搜索‘性能测试工程师’查看每个职位的详情信息''' for item in getPositionId(): r=self.obj.get(url=getUrl(positionId=item)) # print(r.url) print(r.text) #因为返回的详情页面是html的,所以没有响应状态码,只需要断言数据就行 self.assertTrue(self.p.isContent(row=4,str2=r.text)) #要么写成(row=4,str2=r.text),要么写成(4,r.text),否则报错
class Method: def __init__(self): self.operationJson = OperationJson() self.excel = OperationExcel() def post_yuanshi(self, row): '''最原始的post封装''' try: r = requests.post( url=self.excel.getUrl(row=row), data=self.operationJson.get_request_data(row=row), headers=getHeadersValues(), timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误') def post_update(self, row, data): '''请求数据重新修改后,调用的post方法''' try: r = requests.post(url=self.excel.getUrl(row=row), data=data, headers=getHeadersValues(), timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知的错误') def put(self, row): r = requests.put(url=getUrls(row=row), data=self.operationJson.get_request_data(row=row), headers=getHeadersValues()) return r def delete(self, row): r = requests.delete(url=getUrls(row=row), headers=getHeadersValues()) return r
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 Method: def __init__(self): self.excel = OperationExcel() self.operationJson = OperationJson() def post(self, row): """参数中不存在data中的变量参数时使用""" try: r = requests.post(url=self.excel.get_Url(row=row), json=self.operationJson.get_json_data(row=row), headers=getHeadersValue()) return r except Exception as e: raise RuntimeError('接口请求发生异常') pass def post1(self, row, data): """参数中存在data中的变量参数时使用""" try: r = requests.post(url=self.excel.get_Url(row=row), json=data, headers=getHeadersValue()) return r except Exception as e: raise RuntimeError('接口请求发生异常') def post2(self, data1): """获取accesstoken使用""" try: r = requests.post(url='https://api.heplat.com/iface2/getToken', json=data1, headers=getHeadersValue()) return r except Exception as e: raise RuntimeError('接口请求发生异常') pass def post3(self, data2): """获取accesstoken使用""" try: r = requests.post(url='https://api.heplat.com/iface2/getSmsCode', json=data2, headers=getHeadersValue()) return r except Exception as e: raise RuntimeError('接口请求发生异常') pass
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 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 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 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.excel = OperationExcel() def post(self, row): try: r = requests.post(url=self.excel.get_url(row=row), data=self.operationJson.getRequestData(row=row), headers=getHeadersValue(), timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知错误') def post(self, row, data): try: r = requests.post(url=self.excel.get_url(row=row), data=data, headers=getHeadersValue(), timeout=6) return r except Exception as e: raise RuntimeError('接口请求发生未知错误')
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("接口请求发生异常的错误")
def __init__(self): self.operationJson=OperationJson() self.excel=OperationExcel()
def setUp(self): self.obj = Method() self.p = IsContent() self.execl = OperationExcel() self.operationJson = OperationJson()
#!/usr/bin/env python # -*- coding: utf-8 -*- import json from utils.public import * from utils.operationJson import OperationJson from utils.operationExcel import OperationExcel operationJson = OperationJson() operationExcel = OperationExcel() def set_so_keyword(app_id=None, sign=None): "获取请求参数" data = json.loads(operationJson.getRequestsData(1)) data["app_id"] = app_id data["sign"] = sign return json.dumps(data) print(type(set_so_keyword())) # print(set_so_keyword(app_id=20180829170725138653488,sign='8C7DF610ECB03AEA0DA6AA64F6D8C572'))
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('接口请求发生未知的错误')
def setSo(kd='自动化测试工程师'): """对搜索的数据重新赋值""" dici1 = json.loads(OperationJson().getRequestsData(1)) print(dici1) dici1['kd'] = kd return dici1
def setUp(self): self.obj = Method() self.p = IsAssert() self.excel = OperationExcel() self.operationJson = OperationJson()
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
def __init__(self): self.json = OperationJson() #对两个类进行实例化 self.excel = OperationExcel()
def __init__(self): self.config = Config() self.excel = OperationExcel() self.public = PublicMethod() self.json = OperationJson()