Esempio n. 1
0
class Method:
    def __init__(self):
        self.operationJson = OperationJson()
        self.excel = OperationExcel()

    def post(self, row, data, **kwargs):
        try:
            r = requests.post(
                url=self.excel.getUrl(row=row),
                data=data,
                # headers=getHeadersValue(),
                timeout=6)
            return r
        except Exception as e:
            raise RuntimeError('接口请求发生未知的错误')

    def get(self, row, params=None, **kwargs):
        try:
            r = requests.get(
                url=self.excel.getUrl(row=row),
                params=params,
                # headers=getHeadersValue(),
                timeout=6)
            return r
        except Exception as e:
            raise RuntimeError('接口请求发生未知的错误')
Esempio n. 2
0
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('接口请求发生异常')
Esempio n. 3
0
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))
Esempio n. 4
0
class OperationJson:
    def __init__(self):
        self.excel = OperationExcel()

    def getReadJson(self):
        with open(data_dir(fileName='requestData.json'),
                  encoding='utf-8') as fp:
            data = json.load(fp)
            return data

    def getRequestsData(self, row):
        '''获取请求参数'''
        return json.dumps(
            self.getReadJson()[self.excel.get_request_data(row=row)])

    def getReadJson2(self):
        with open(data_dir(fileName='requestData2.json'),
                  encoding='utf-8') as fp:
            data = json.load(fp)
            return data

    def getRequestsData2(self, row):
        '''获取请求参数'''
        return json.dumps(
            self.getReadJson2()[self.excel.get_request_data(row=row)])
Esempio n. 5
0
 def setUp(self):
     self.methon = WebMethon()
     self.config = Config()
     self.excel = OperationExcel()
     self.pm = PublicMethod()
     self.operationJson = OperationJson()
     self.iscontent = IsContent()
Esempio n. 6
0
class Method:
    def __init__(self):
        self.operationJson = OperationJson()
        self.excel = OperationExcel()

    def post(self, row, data, header):
        try:
            r = requests.post(url=self.excel.getUrl(row=row),
                              headers=get_headers(header),
                              data=data,
                              timeout=6)
            return r
        except Exception as e:
            raise RuntimeError("接口请求发生未知的错误")

    def get(self, row, params):
        r = requests.get(url=self.excel.getUrl(row=row),
                         params=params,
                         timeout=6)
        return r

    def isContent(self, row, str2):
        flag = None
        if self.excel.getExpect(row=row) in str2:
            flag = True
        else:
            flag = False
        return flag
Esempio n. 7
0
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)
        print(r.json()['code'])
        self.assertEqual(r.json()['code'], '1001')

    def isContent(self, r, row):
        self.statusCode(r=r)
        self.assertTrue(self.p.isContent(row=row, str2=r.text))

    def test_laGou_001(self):
        "sign为空"
        r = self.obj.post(row=1, data=set_so_keyword(userPhone="18821768014"))
        print("test_laGou_004 is:", r.text)
        self.isContent(r=r, row=1)
        self.execl.writeResult(1, 'pass')


# print (set_so_keyword(app_id=20180829170725138653,sign='8C7DF610ECB03AEA0DA6AA64F6D8C572'))p_id=20180829170725138653,sign='8C7DF610ECB03AEA0DA6AA64F6D8C572'))
Esempio n. 8
0
 def setup_class(self):
     print('类前面,我爱你')
     self.obj = Method()
     self.p = IsContent()
     self.execl = OperationExcel()
     self.operationJson = OperationJson()
     self.log = Log()
Esempio n. 9
0
class Method:
	def __init__(self):
		self.operationJson=OperationJson()
		self.excel=OperationExcel()

	def post(self,row,data,**kwargs):
		self.uri = url
		try:
			r=requests.post(
				# 测试环境
				# url="http://192.168.3.15:83" + self.excel.getUrl(row=row),
				#预发环境
				url=self.uri+self.excel.getUrl(row=row),
				data=data,
				headers=getHeadersValue(),
				verify=False,
				timeout=6)
			return r
		except Exception as e:
			raise  RuntimeError('接口请求发生未知的错误')

	def get(self,row,params=None,**kwargs):
		try:
			r=requests.get(
				url="http://192.168.3.15:83"+self.excel.getUrl(row=row),
				params=params,
				# headers=getHeadersValue(),
				timeout=6)
			return r
		except Exception as e:
			raise  RuntimeError('接口请求发生未知的错误')
Esempio n. 10
0
 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",
     }
Esempio n. 11
0
class IsContent:
	def __init__(self):
		self.excel=OperationExcel()

	def isContent(self,row,str2):
		flag=None
		if self.excel.getExpect(row=row) in str2:
			flag=True
		else:
			flag=False
		return flag

		print("https://api.hzxsoft.com"+self.excel.getUrl(row=1))
Esempio n. 12
0
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),否则报错
Esempio n. 13
0
class IsContent:
	def __init__(self):
		self.excel=OperationExcel()
		self.log=MyLog()

	def isContent(self,row,str2):
		flag=None
		if self.excel.getExpect(row=row) in str2:
			flag=True
			self.log.infoLog('%s接口通过预期结果断言成功'%self.excel.getCaseID(row))
		else:
			flag=False
			self.log.errorLog('%s接口通过预期结果断言失败'%self.excel.getCaseID(row))
		return flag
Esempio n. 14
0
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')
Esempio n. 15
0
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())
Esempio n. 16
0
class OperationJson:
    def __init__(self):
        self.excel = OperationExcel()  #继承OperationExcel类的方法,这里是是对类的实例化处理

    def getReadJson(self):
        # 读取json文件
        # 读取过程中遇到json.decoder.JSONDecodeError,需要将json文件中的False改为"false"
        with open(data_dir('data', 'requestData.json'), 'r',
                  encoding='utf-8') as f:
            # print(type(json.load(f)))  #多了这行代码会出错,数据类型为字典
            return json.load(f)

    def getRequestData(self, row):
        '''
		取请求参数
		json.dumps()将字典处理为json
		'''
        return json.dumps(self.getReadJson()[self.excel.get_request_data(row)])


# opera=OperationJson()
# print(opera.getRequestData(1))

# a='\u81ea\u52a8\u5316\u6d4b\u8bd5'
# print(type(a))
# print(str(a))
# print(type(a))
# print(bytes(a,encoding='gb2312'))
# print(type(a))
Esempio n. 17
0
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)
Esempio n. 18
0
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()
Esempio n. 19
0
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
Esempio n. 20
0
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))
Esempio n. 21
0
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')
Esempio n. 22
0
class LoginTest(unittest.TestCase):
	def setUp(self):
		self.obj=Method()
		self.p=IsContent()
		self.execl=OperationExcel()
		self.operationJson=OperationJson()
		self.log=MyLog()

	def isContent(self,r,row):
		self.assertEqual(r.status_code, 200)
		self.assertTrue(self.p.isContent(row=row,str2=r.text))

	def test_login_01(self):
		'''正确的账号密码登录'''
		r = self.obj.post(1,data=setSo())
		self.isContent(r,1)
		self.execl.writeResult(1,'pass')   #测试结果写到excel
		#cookies= requests.utils.dict_from_cookiejar(r.cookies)  #把cookies转为字典类型
		#提取sessionid并写入文件中
		writeDatafile(fileName='sessionid.md',content=r.cookies['juooo_sessionid'])

	def test_login_02(self):
		'''正确的账号错误的密码登录'''
		r=self.obj.post(2,data=setSo(password=1230))
		self.isContent(r,2)
		self.execl.writeResult(2, 'pass')

	def test_login_03(self):
		'''错误的账号正确密码登录'''
		r=self.obj.post(3,data=setSo(username='******'))
		self.isContent(r,3)
		self.execl.writeResult(3, 'pass')

	def test_login_04(self):
		'''错误的账号错误的密码登录'''
		r=self.obj.post(4,data=setSo(username='******',password=123))
		self.isContent(r,4)
		self.execl.writeResult(4, 'pass')

	def test_login_05(self):
		'''账号密码为空登录'''
		r=self.obj.post(5,data=setSo(username='',password=''))
		self.isContent(r,5)
		self.execl.writeResult(5, 'pass')
Esempio n. 23
0
class Runner:
    def __init__(self):
        self.excel = OperationExcel()

    def getSuite(self):
        '''获取要执行的测试套件'''
        suite = unittest.TestLoader().discover(start_dir=os.path.join(
            os.path.dirname(os.path.dirname(__file__)), 'tests'),
                                               pattern='test_*.py',
                                               top_level_dir=None)
        return suite

    def send_mail(self, to_user, sub, content):
        '''
		发送邮件内容
		:param to_user:发送邮件的人
		:param sub:主题
		:param content:邮件内容
		'''
        global send_mail
        global send_user
        send_mail = 'smtp.sina.cn'
        send_user = '******'
        message = MIMEText(content, _subtype='plain', _charset='utf-8')
        message['Subject'] = sub
        message['From'] = send_user
        message['To'] = to_user
        server = smtplib.SMTP()
        server.connect(send_mail)
        server.login('*****@*****.**', 'admin123')
        server.sendmail(send_user, to_user, message.as_string())
        server.close()

    def main_run(self):
        '''批量执行测试用例'''
        unittest.TextTestRunner().run(self.getSuite())
        content = '通过数:{0} 失败数:{1} 通过率:{2}'.format(
            self.excel.run_success_result(), self.excel.run_fail_result(),
            self.excel.run_pass_rate())
        print(
            'Please wait while the statistics test results are sent in the mail'
        )
        self.send_mail('*****@*****.**', '接口自动化测试报告', content)
Esempio n. 24
0
class IsAssert:
    def __init__(self):
        self.excel = OperationExcel()

    def isContent(self, row, str2):
        flag = None
        if self.excel.getExpect(row=row) in str2:
            flag = True
        else:
            flag = False
        return flag
Esempio n. 25
0
class OperationJson:
	def __init__(self):
		self.excel=OperationExcel()

	def getReadJson(self):
		with open(data_dir(filename="requestData.json"),encoding="utf-8") as fp:
			data=json.load(fp)
			return data

	def getRequestsData(self,row):
		'''获取请求参数'''
		return self.getReadJson()[self.excel.get_request_data(row=row)]
Esempio n. 26
0
class IsContent:
    def __init__(self):
        self.excel = OperationExcel()
    def isContent(self,row,str):
        flag=None
        #print(self.excel.getExcept(row=row))
        if self.excel.getExcept(row=row) in str:
            flag=True
        else:
            flag=False
        print(flag)
        return flag
Esempio n. 27
0
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 ("test_laGou_001 is:", r.text)
		self.isContent(r=r,row=1)
		self.execl.writeResult(1,'pass')
Esempio n. 28
0
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"])
Esempio n. 29
0
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'], 1006)

    def isContent(self, r, row):
        self.statusCode(r=r)
        self.assertTrue(self.p.isContent(row=row, str2=r.text))

    def test_laGou_004(self):
        "sign为空"
        r = self.obj.post(row=3,
                          data=set_so_keyword(app_id="20180829170725138653"))
        print("test_laGou_004 is:", r.text)
        self.isContent(r=r, row=3)
        self.execl.writeResult(3, 'pass')
Esempio n. 30
0
class Method:
    def __init__(self):
        self.json = OperationJson()  #对两个类进行实例化
        self.excel = OperationExcel()

# # post请求直接读取json中data作为请求数据,使用于参数没有变化的excel用例
# 	def post(self,row):
# 		try:
# 			r=requests.post(url=self.excel.get_url(row),
# 			                data=self.json.getRequestData(row),
# 			                headers=getHeaders(),
# 			                timeout=6)
# 			return r
# 		except Exception as e:
# 			raise RuntimeError('接口请求发生未知的错误')

# post请求中用户可手动修改json中data作为请求数据

    def post(self, row, data):
        try:
            r = requests.post(url=self.excel.get_url(row),
                              data=data,
                              headers=getHeaders(),
                              timeout=6)
            return r
        except Exception as e:
            raise RuntimeError('接口请求发生未知的错误')

    # 丢弃的代码,可以用于环境版本测试(不同的环境的headers相差较大的情况下使用)
    # def post(self,row,data):
    # 	try:
    # 		r=requests.post(url=self.excel.get_url(row),
    # 		                data=data,
    # 		                headers=checkHeaders(row=row,
    # 		                                     f1=getHeaders(),
    # 		                                     f2=getHeadersInfo()),
    # 		                timeout=6)
    # 		return r
    # 	except Exception as e:
    # 		raise RuntimeError('接口请求发生未知的错误')


# 用户获取职位详情页信息,当然也可以用到其他接口中

    def get(self, url, params=None):  #有时候有的get请求有params参数,所以可以写上
        r = requests.get(url=url,
                         params=params,
                         headers=getHeaders(),
                         timeout=6)
        return r