class Testlagou: excel = OperationExcel() req = Requests() def test_listLaGou(self, first=True, pn=None, kd=None): data = self.excel.getDataValue(row=4) header = self.excel.getHeaderss(row=4) data['first'] = first data['pn'] = pn data['kd'] = kd r = self.req.request(url=self.excel.getUrl(row=4), method=self.excel.getMethod(row=4), headers=self.excel.getHeaderss(row=4), params=data) return r # print(header) def test_list_0001(self): '''测试kd为空''' response = self.test_listLaGou(pn=2) # assert response.json() != {} def test_list_0002(self): '''测试超过页数查询''' response = self.test_listLaGou(pn=65) # assert response.json() == {} print(response.json())
class Testyunket: req = Requests() excel = OperationExcel() global header header = { 'Cookie': 'EDUWEBDEVICE=eb652b120b914846b23c63beb06c277b; EDU-YKT-MODULE_GLOBAL_PRIVACY_DIALOG=true; 1140087299=1140087299; OUTFOX_SEARCH_USER_ID_NCOO=249788378.68942502; UM_distinctid=17810f1747c959-08e92f47030c8c-53e356a-e1000-17810f1747da09; eds_utm=eyJjIjoiIiwiY3QiOiIiLCJpIjoiIiwibSI6IiIsInMiOiIiLCJ0IjoiIn0=|aHR0cHM6Ly93d3cuYmFpZHUuY29tL2xpbms/dXJsPVR4enQ0NmhqY3JwdEpmTUhhUXVJZkdfaC1sSjlvSFFWSUk4OWF1VFotNTMmd2Q9JmVxaWQ9YmIwODBiNmMwMDBmOGVhNzAwMDAwMDA1NjA0ZmViNDc=; __utmz=129633230.1615850317.54.6.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmc=129633230; hasVolume=true; _ntes_nnid=71d171bc2f56de60a5827b954bb84ede,1616046781328; _ntes_nuid=71d171bc2f56de60a5827b954bb84ede; mail_psc_fingerprint=cc3af4f76d860b369db5e0c817a013c9; sideBarPost=1264; videoResolutionType=3; videoVolume=0.75; videoRate=1.25; [email protected]:-1:1; __utma=129633230.358953019.1614867963.1616304865.1616395587.72; hb_MA-BFF5-63705950A31C_source=study.163.com; utm="eyJjIjoiIiwiY3QiOiIiLCJpIjoiIiwibSI6IiIsInMiOiIiLCJ0IjoiIn0=|aHR0cHM6Ly9rZS5zdHVkeS4xNjMuY29tL2NvdXJzZS9kZXRhaWwvMTAwMDc4MTM1P1BkdD15ZGtXZWImaW5Mb2M9d2ViX3NzX3NzcmM="; NTESSTUDYSI=5f57b893e5bf4efd970f60ba47c5a837; YD_SC_SID=1B28EE4C7F26457ABA09653964BDF7B8; NETS_utid=PLrpZOUlFduBQhIwDfKS8gY42U7dHZ8I; NTES_YD_SESS=FKppMFAiyqMdTh7Zl61_vM375uQ8iAPbF.LHJNbrdLNKkrW0kCD17ofnPN7ODsNL6w09kgGT1ODR_RiWg00A25QTeGeIzaVZHdhp5vOURcsaR8zG4pwxFu81rRoxopqUKf0pqwnJnafYlU1bLgIqnGF4F0iqYSItGK7dLyxSgJBS1qxNZLikxhMvXpjySleKu8hdei68daWPXlcwvFL9rxYlHE.dtzIoRFC1ryC55.XiV; NTES_YD_PASSPORT=k61Fbq7T8NGD05pD6Jp6iImr3X30dpgOtbsIygXeYC_U7LHE7Muc9bXpJT9Ru0TdrjEI7GfDcRu3x.XMjH3nGHAs_jJT0fLK65X5hjjtGZL6J8uWscDHV5D4FLArBu1y_dHbzxP.FueHZGD_X08gBUXMBXdAYau2my8OiOL72CIzQ8gCiihDs.z8MEHgfZfneJzaCRBbD2BUsiS5AfMUZam2z; S_INFO=1616395991|0|3&80##|13136166390; P_INFO=13136166390|1616395991|1|study|00&99|zhj&1615944585&study_client#zhj&330100#10#0#0|&0|null|13136166390; STUDY_INFO="[email protected]|8|1140087299|1616395991533"; STUDY_SESS="4lkUrV0rYQVkxP9TTAmtfR+osO3Q8sbuRISN7SjBO/T8OE5DU0SfMShyeZrB/dL5F1RaXEkOxmcSgbELZrqgeJkGKHYKN/z+Oh6H1wOxdiIB3NV+fRXRmH/WofdLjD7h4oJY+QrYmk3vnbSTDlLrRNZ/NiyCQaEopUqZDZ2gxCkLhur2Nm2wEb9HcEikV+3FTI8+lZKyHhiycNQo+g+/oA=="; STUDY_PERSIST="ds+yImgh5IpYpKxjPosiztPHxI1+N8tbqUONgMbLOoUsD3BBJXto75LdDkyiUJuV9EgMdSmdzomgVhGH6xTtKY1QayMWVQGifwrtWjYqZ9FsVwMHwtOnRDKFheN1TkcYRjyYDNEf0Dhr6F05Je6ySL/lLvgp7Lwd68Chfp2NLWRUySU1z8tua5AIWXI3WQ2K+34u5LQy3CEFkgM6BUwlp12V/BfAUihs+RTZV3Qq4l3ZgpjCC7Iso4RP9U87vJE8LtaQzUT1ovP2MqtW5+L3Hw+PvH8+tZRDonbf7gEH7JU="; DICT_SESS=v2|GA73zVulEBeZhfgz0HQuRl50fPKhfe406LhHOGO4PFRqZOfgyRLqy0QLhM6z64pz0Of6Mgz0LQy0kfOMJK0HpL0YGOLkm64eFR; DICT_LOGIN=1||1616395991585; NETEASE_WDA_UID=1140087299#|#1525503558748; NTES_STUDY_YUNXIN_ACCID=s-1140087299; NTES_STUDY_YUNXIN_TOKEN=0795677da5435c59a6da72305346c45e; STUDY_UUID=ff1c373b-c6a1-4bfb-b742-20a6a6749454; __utmb=129633230.31.8.1616396146409', 'content-type': 'application/json', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36' } # @pytest.fixture() def test_yunket_0001(self): '''模糊查询,根据字符串”python''' cookiess = getHeaders.readheader()['yunCookie'] response = self.req.request( url=getHeaders.getYunUrl(uri="/j/search/suggestions/courses.json"), method="post", # headers=header, headers=getHeaders.getJsonHeader(cookiess), params=self.excel.getDataValue(row=5)) assert response.json()['code'] == 0 assert response.json()['result'][0]['productName'] == "Python五项全能班·10班" assert response.status_code == 200 return response.json()
class TestDangdang: excel = OperationExcel() obj = Requests() mysql = mysqlUtils() def test_dangdang_0001(self): r = self.obj.request(url=self.excel.getUrl(row=1), method=self.excel.getMethod(row=1), json=self.excel.getDataValue(row=1)) return r.text # assert "您好,欢迎光临乐科二手图书网" in json.dumps(r.text,ensure_ascii=False) # assert r.status_code == 200 #断言状态码 def test_dangdang_0002(self): param = self.excel.getDataValue(row=2) r = self.obj.request(url=self.excel.getUrl(row=2), method=self.excel.getMethod(row=2), headers=self.excel.getHeaderss(row=2), params=param) # bookName = self.mysql.readSql(mysql="select * from d_product where id=%s",params=param) # assert r. def test_lagou_0003(self): r = self.obj.request(url=self.excel.getUrl(row=3), method=self.excel.getMethod(row=3), params=self.excel.getDataValue(row=3)) print(r.cookies)
class TestBooks: excel = OperationExcel() obj = Requests() auth = HTTPBasicAuth('Admin', 'admin') def test_book_001(self): """查询所有书籍信息""" r = self.obj.get(url=self.excel.readUrl(1), auth=self.auth) assert self.excel.readExpect(1) in json.dumps( r.json()['data'][0]['author']) assert r.status_code == 200 log("查询所有书籍成功") # print(r.json()['data'],type(r.json()['data'])) # for item in r.json()['data']: # print(item) def test_book_002(self): """添加书籍请求""" r = self.obj.post(url=self.excel.readUrl(2), json=self.excel.readJsonValues(2), auth=self.auth) writeBookID(r.json()['data']['ID']) assert self.excel.readExpect(2) in json.dumps(r.json()['msg'], ensure_ascii=False) assert r.status_code == 200 log("添加书籍成功") # print(json.dumps(r.json(),ensure_ascii=False)) def test_book_003(self): """查看已添加的书籍""" r = self.obj.get(url=self.excel.readUrl(3), auth=self.auth) # print(type(r.json()['status'])) assert self.excel.readExpect(3) == float(r.json()["status"]) assert r.status_code == 200 log("查看已添加书籍成功") def test_book_004(self): """更新/修改已添加的书籍""" r = self.obj.put(url=self.excel.readUrl(4), json=self.excel.readJsonValues(4), auth=self.auth) # print(type(json.dumps(r.json()['msg'],ensure_ascii=False))) assert self.excel.readExpect(4) in json.dumps(r.json()['msg'], ensure_ascii=False) assert r.status_code == 200 log("更新/修改已添加的书籍成功") def test_book_005(self): """删除已编辑的书籍""" r = self.obj.delete(url=self.excel.readUrl(5), auth=self.auth) # print(r.json()) assert self.excel.readExpect(5) in json.dumps(r.json()['msg'], ensure_ascii=False) assert r.status_code == 200 log("删除已编辑的书籍成功")
class TestBook(object): excel = OprationExcel() obj = Requests() def result(self, r, row): assert r.status_code == 200 assert self.excel.getExpect(row=1) in json.dumps(r.json(), ensure_ascii=False) def test_book_001(self): '''获取所有书籍信息''' r = self.obj.get(url=self.excel.getUrl(row=1)) self.result(r=r, row=1)
class TestBook: excel = OperateExcel() obj = Requests() def result(self,r,row): assert r.status_code==200 assert self.excel.getExpect(row=row) in json.dumps(r.json(),ensure_ascii=False) def test_book_001(self): ''' 获取所有书籍的信息 :return: ''' r = self.obj.get(url=self.excel.getUrl(row=1)) self.result(r=r,row=1) def test_book_002(self): ''' 添加书籍 :return: ''' r = self.obj.post(url=self.excel.getUrl(row=2),json=self.excel.getJson(row=2)) # print(r.json()) bookID = r.json()[0]['datas']['id'] writeContent(content=bookID) def test_book_003(self): ''' 查看添加的书籍 :return: ''' r = self.obj.get(url=self.excel.getUrl(row=3)) self.result(r=r,row=3) def test_book_004(self): ''' 编辑书籍 :return: ''' r = self.obj.put(url=self.excel.getUrl(row=4),json=self.excel.getJson(row=4)) self.result(r=r,row=4) def test_book_005(self): ''' 删除书籍 :return: ''' r = self.obj.delete(url=self.excel.getUrl(row=5)) self.result(r=r,row=5)
class TestBook: excel = ExcelOperator(file_path('data', 'book.xls'), 0) request = Requests() def assert_result(self, row: int, resp): assert self.excel.get_except_result(row) in json.dumps( resp.json(), ensure_ascii=False) def test_book_001(self): """获取所有书籍数据""" resp = self.request.get(self.excel.get_url(1)) resp.close() self.assert_result(1, resp) def test_book_002(self): """添加书籍""" data = self.excel.get_data(2, file_path('config', 'book.yml')) resp = self.request.post(self.excel.get_url(2), json=data) resp.close() book_id = resp.json()[0]['datas']['id'] write_content(file_path('data', 'book_id'), book_id) self.assert_result(2, resp) def test_book_003(self): """查看书籍""" resp = self.request.get(self.excel.get_url(3)) resp.close() self.assert_result(3, resp) def test_book_004(self): """更新书籍""" data = self.excel.get_data(4, file_path('config', 'book.yml')) resp = self.request.put(self.excel.get_url(4), json=data) resp.close() self.assert_result(4, resp) def test_book_005(self): """删除书籍""" resp = self.request.delete(self.excel.get_url(5)) resp.close() self.assert_result(5, resp)
class TestBook(): excel=OperationExcel() obj=Requests() def result(self,r,row): assert r.status_code == 200 assert self.excel.get_Expect(row=row) in json.dumps(r.json(),ensure_ascii=False) def test_book_001(self): '''获取所书籍信息''' r= self.obj.get(url=self.excel.getUrl(row=1)) #asciiFalse或者True都可以,可以把json封装成方法 #assert self.excel.get_Expect(row=1) in json.dumps(r.json(),ensure_ascii=False) self.result(row=1,r=r) def test_book_002(self): '''添加书籍''' r=self.obj.post(url=self.excel.getUrl(row=2), json=self.excel.getJson(row=2)) print(r.json())
class TestDangdang: excel = OperationExcel() obj = Requests() mysql = mysqlUtils() # @pytest.mark.flaky(reruns=5) #失败执行多次 def test_dangdang_0001(self): r = self.obj.request(url=self.excel.getUrl(row=1), method=self.excel.getMethod(row=1), json=self.excel.getDataValue(row=1)) return r.text # assert "您好,欢迎光临乐科二手图书网" in json.dumps(r.text,ensure_ascii=False) # assert r.status_code == 200 #断言状态码 # time.sleep(1) # @pytest.mark.repeat(3) #c重复执行 def test_dangdang_0002(self): param = self.excel.getDataValue(row=2) r = self.obj.request(url=self.excel.getUrl(row=2), method=self.excel.getMethod(row=2), headers=self.excel.getHeaderss(row=2), params=param)
class TestBook: excel = OperationExcel() obj = Requests() def result(self, r, row): assert r.status_code == 200 assert self.excel.getExResult(row=row) in json.dumps( r.json(), ensure_ascii=False) def test_book_001(self): '''获取所有书籍信息''' r = self.obj.get(url=self.excel.getReAddress(row=1)) self.result(r, 1) # print(r.json()) def test_book_002(self): '''添加书籍''' r = self.obj.post(url=self.excel.getReAddress(row=2), json=self.excel.getJson(row=2)) bookId = r.json()[0]['datas']['id'] writeContent(bookId) self.result(r, 2) def test_book_003(self): '''查看添加书籍信息''' r = self.obj.get(url=self.excel.getReAddress(row=3)) self.result(r, 3) def test_book_004(self): '''编辑书籍信息''' r = self.obj.put(url=self.excel.getReAddress(row=4), json=self.excel.getJson(row=4)) self.result(r, 4) def test_book_005(self): '''删除书籍信息''' r = self.obj.delete(url=self.excel.getReAddress(row=5)) self.result(r, 5)
class TestBook: excel = OperationExcel() obj = Requests() def result(self, r, row): assert r.status_code == 200 assert self.excel.getExcept(row=row) in json.dumps(r.json(), ensure_ascii=False) def test_book_001(self): '''获取所有书籍信息''' r = self.obj.get(url=self.excel.getUrl(row=1)) self.result(r=r, row=1) def test_book_002(self): '''添加书籍''' r = self.obj.post(url=self.excel.getUrl(row=2), json=self.excel.getJson(row=2)) print(r.text) self.result(r=r, row=2) #writeContent(content=r.json()[0]['datas']['id']) def test_book_003(self): '''查看书籍''' r = self.obj.get(url=self.excel.getUrl(row=1)) print(r.url) self.result(r=r, row=3) def test_book_004(self): '''编辑书籍信息''' r = self.obj.put(url=self.excel.getUrl(row=4), json=self.excel.getJson(row=4)) self.result(r=r, row=4) def test_book_005(self): '''删除书籍信息''' r = self.obj.delete(url=self.excel.getUrl(row=5)) self.result(r=r, row=5)
class TestBook(): excel = OperationExcel() obj = Requests() def result(self, r, row): """对响应码和响应内容的断言""" assert r.status_code == 200 assert self.excel.get_expect(row=row) in json.dumps(r.json(), ensure_ascii=False) def test_book_001(self): """获取所有的书籍信息""" r = self.obj.get(url=self.excel.get_url(row=1)) self.result(r=r, row=1) def test_book_002(self): """ 验证添加书籍,两点: 1、需要校验用例是否执行成功,验证书籍添加成功 2、从响应结果中获取bookid,并将bookid写入到一个文件中,这个写入到文件的方法在common 下的public.py里面封装 """ r = self.obj.post(url=self.excel.get_url(row=2), json=self.excel.get_data()) write_content(content=r.json()[0]['datas']['id'], filedir='data', filename='bookId') self.result(r=r, row=2) def test_book_003(self): """ 查看添加的书籍,URL中包含动态参数bookid, 所以需要从文件中读取bookid的值,并修改获取url的函数(operationExcel.py中get_url()) 同理在public下面添加读取的方法 """ r = self.obj.get(url=self.excel.get_url(row=3)) self.result(r=r, row=2)
class TestBook: obj = Requests() excel = OperationExcel() def assert_status_code(self, row, r): assert int(self.excel.getExpect(row=row)) is r.status_code def test_book_001(self): '''获取所有书籍的信息''' r = self.obj.get(url=self.excel.geturl(row=1)) self.assert_status_code(row=1, r=r) def test_book_002(self): '''添加书籍''' r = self.obj.post(url=self.excel.geturl(2), json=self.excel.getjson(2)) writeContent('bookid', r.json()[0]['datas']['id']) # writeContent('bookid', 1) self.assert_status_code(row=2, r=r) def test_book_003(self): '''查看书籍''' r = self.obj.get(url=self.excel.geturl(3)) # print(readContent('bookid')) self.assert_status_code(row=3, r=r)
#!/user/bin/env python # -*- coding:utf-8 -*- # author:yumin An from base.method import Requests import requests re = Requests() r = re.request(url="https://passport.lagou.com/login/login.json", method='get', params={ 'jsoncallback': 'jQuery111306939998565532908_1615971072665', 'isValidate': True, 'username': 13136166390, 'request_form_verifyCode': None, 'phoneVerificationCode': 437181, 'autoPhoneVerificationCode': None, 'countryCode': '0086', 'challenge': 111, '_': 1615971072669 }, headers={"Content-Type": "application/x-www-form-urlencoded"}, allow_redirects=False) # print(requests.utils.dict_from_cookiejar(r.cookies)) print(r.cookies.get_dict())
#!/usr/bin/pathon3 #-*- coding:UTF-8 -*- # @author: cc <*****@*****.**> from base.method import Requests from utils.operationExcelall import * import pytest import json excel = OperationExcel() obj1 = Requests() @pytest.mark.parametrize('datas', excel.runs()) def test_login_book(datas): """对请求参数做反序列化处理,因为这里直接返回的请求参数是字符串类型的,在requests中需要传递字典格式""" data = datas[ExcelVarles.data] if len(str(data).strip()) == 0: pass elif len(str(data).strip()) > 0: data = json.loads(data, encoding='utf-8') #同理,对请求头做反序列化的处理 hearders = datas[ExcelVarles.headers] if len(str(hearders).strip()) == 0: pass elif len(str(hearders).strip()) >= 0: hearders = json.loads(hearders, encoding='utf-8') #执行前置条件关联的测试用例 r = obj1.post(url=excel.case_prev( datas[ExcelVarles.precondition])[ExcelVarles.url], json=json.loads(excel.case_prev( datas[ExcelVarles.precondition])[ExcelVarles.params], encoding='utf-8')) #获取响应中的token
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Li Na from base.method import Requests from utils.operationExcel1 import * import pytest import json excel = OperationExcel1() obj = Requests() @pytest.mark.parametrize('datas',excel.runs()) def test_login_book(datas): print(datas[ExcelVarles1.caseUrl]) '''对请求参数反序列化处理:str变为字典''' param = datas[ExcelVarles1.paramdata] print('111',type(param)) if len(str(param).strip()) == 0:pass elif len(str(param).strip()) > 0: param = json.loads(param) '''对请求头做反序列化的处理:str变为字典''' header=datas[ExcelVarles1.headersdata] if len(str(header).strip())==0:pass elif len(str(header).strip())>0: header=json.loads(header) #print('header',header) '''
class TestBook: excel=OperationExcel() obj=Requests() def result(self,r,row): '''将期望结果和协议状态码封装到一个函数''' assert r.status_code==200 assert self.excel.getExpect(row=row) in json.dumps(r.json(), ensure_ascii=False) def test_book_001(self): '''获取所有书籍的信息''' r=self.obj.get(url=self.excel.getUrl(row=1)) # print(r.json()) # print('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') # print(self.excel.getExpect(row=2)) # print('@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') assert self.excel.getExpect(row=1) in json.dumps(r.json(),ensure_ascii=False) self.result(r=r,row=1) # def test_book_002(self): '''添加书籍''' r=self.obj.post( url=self.excel.getUrl(row=2), json=self.excel.getJson(row=2) ) # print(r.text) # print(type(json.dumps(r.json(), ensure_ascii=False))) #结果:<class 'str'> # print(json.dumps(r.json(),ensure_ascii=False)) # print(type(r.json())) #<class 'dict'> # print(r.json()) # print(type(r.json()[0]['datas']['id'])) #获取id 结果: <class 'int'> print(r.json()[0]['datas']['id']) #获取id bookID=r.json()[0]['datas']['id'] writeContent(content=bookID) #将ID写入到bookID中 # self.result(r=r,row=2) #断言封装为函数,调用函数报错 self.excel.getExpect(row=2) in json.dumps(r.json(), ensure_ascii=False) #断言 def test_book_003(self): '''查看书籍''' r=self.obj.get(url=self.excel.getUrl(row=3)) print(r.url) #获取响应的url print(r.json()) print(r.json()['datas'][0]['id']) self.result(r=r,row=3) # self.excel.getExpect(row=2) in json.dumps(r.json(),ensure_ascii=False) def test_book_004(self): '''编辑书籍信息''' r=self.obj.put( url=self.excel.getUrl(row=4), json=self.excel.getJson(row=4) ) self.result(r=r, row=4) def test_book_005(self): '''删除一条记录''' r=self.obj.delete( url=self.excel.getUrl(row=5) ) # print(r.json) self.result(r=r,row=5)
#!/usr/bin/env python # -*- coding:utf-8 -*- # @Time :2021/4/9 13:24 # @Author :cjw import pytest import json import allure from utils.file_operator import ExcelOperator from utils.enum import ApiCaseEnum from common.public import file_path, write_content, read_content from base.method import Requests excel = ExcelOperator(file_path('data', 'api.xls')) request = Requests() def run_case(case: dict): """案例执行""" resp = None method = case[ApiCaseEnum.METHOD.value].lower() if method == 'get': if headers := case[ApiCaseEnum.HEADER.value]: resp = request.get(case[ApiCaseEnum.URL.value], headers=headers) else: resp = request.get(case[ApiCaseEnum.URL.value]) elif method == 'post': if headers := case[ApiCaseEnum.HEADER.value]: if data_type := case[ApiCaseEnum.TYPE.value]: if data_type.lower() == 'data': resp = request.post(case[ApiCaseEnum.URL.value], headers=headers,
#!/usr/bin/env python # -*- encoding: utf-8 -*- ''' Datetime:2020/12/15 10:11 author:乔誉萱 说明:获取条款列表 :param :param ''' from base.method import Requests from common.getFixture import * obj_request = Requests() @pytest.mark.skip(reason='忽略新增条款用例') def test_submit(getData_submit,conftest_getHeaders): ''' 测试用例:新增条款 :param getData_submit: fixture装饰器返回yaml数据集--新增条款(在fixtureData目录下) :param conftest_getHeaders: conftest.py模块返回的请求头 ''' result = obj_request.post( url=getData_submit['url'], headers=conftest_getHeaders, json=getData_submit['data'] ) assert getData_submit['message'] == result.json()['message'] return result.json()