python接口自动化--封装和参数化及unittest用例

一、

封装登录接口并进行参数化--禅道登录为例

  

login函数封装了登录接口并对登录账号和密码进行参数化
is_login_sucess函数封装了判断登录成功的方法
 1 #testLogin.py
 2 import requests
 3
 4 #登录案例
 5
 6 def login(s,admin,pwd):
 7     s = requests.session()
 8     url = "http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html"
 9     headers ={
10         "Content-Type": "application/x-www-form-urlencoded"
11     }
12     body = {
13         "account":admin,
14         "password":pwd,
15         "referer":"http://127.0.0.1/zentao/my/",
16         "keepLogin[]": "on"
17     }
18
19     r = s.post(url,headers=headers,data=body,verify=False)
20     # print(r.content.decode(‘utf-8‘))
21     return r.content.decode(‘utf-8‘)
22
23 def is_login_sucess(loginRes):
24         ‘‘‘
25         判断是否登录成功
26         :param login:登录函数返回的内容
27         :return: Ture or False
28         ‘‘‘
29         if "登录失败" in loginRes:
30             print("登录失败")
31             return False
32         elif "parent.location=" in loginRes:
33             print("登录成功")
34             return True
35         else:
36             print("出现异常,登录失败")
37             return False
38
39 if __name__ == ‘__main__‘:
40     s = requests.session()
41     loginRes = login(s,‘admin‘,‘e10adc3949ba59abbe56e057f20f883e‘)
42     result = is_login_sucess(loginRes)
43     print(result)

二、unittest设计测试用例

 1 import unittest
 2 import requests
 3 from common.testLogin import login,is_login_sucess#导入包、方法
 4
 5 class TestCaseCSH(unittest.TestCase):
 6     ‘‘‘禅道登录‘‘‘
 7     @classmethod
 8     def setUpClass(cls):
 9         cls.s = requests.session()
10
11     def tearDown(self):
12         self.s.cookies.clear()
13     # def setUp(self):
14     #     self.s = requests.session()
15     #
16     # def tearDown(self):
17     #     self.s.close()
18
19     def testlogin01(self):
20         ‘‘‘测试用例01‘‘‘
21         res = login(self.s,"admin","e10adc3949ba59abbe56e057f20f883e")
22         result = is_login_sucess(res)
23         #期望结果,登录成功True
24         self.assertTrue(result)
25
26
27     def testlogin02(self):
28         ‘‘‘测试用例02‘‘‘
29         res = login(self.s,"dmin","e10adc3949ba59abbe56e057f20f883e")
30         result = is_login_sucess(res)
31         #期望结果,登录失败False
32         self.assertFalse(result)
33
34
35 if __name__ == ‘__main__‘:
36     unittest.main()

原文地址:https://www.cnblogs.com/xiaoyujuan/p/11314933.html

时间: 2024-07-29 14:55:04

python接口自动化--封装和参数化及unittest用例的相关文章

python接口自动化—封装获取常量的类

背景: 一.执行case的过程: 首先需要,我们能够通过excel获取单元格的内容.获取内容时,首先需要知道获取的数据是哪一行的,这行数据中需要拿那些参数,比如case 名称.请求url.请求方式.header.依赖id.依赖数据所属字段.请求数据.预期结果: 然后需要,判断字段.数据的合法性,将合法case组合成接口请求: 最后需要,执行case,进行断言.生成报表等. 二.问题:在执行case时需要知道需要执行哪个case, 三.解决方案:但是我们并不知道要拿哪个单元格的内容,这需要通过获取

python接口自动化8-参数化

前言 前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可读性,接下来这篇可以把每一个动作写成一个函数,这样更方便了. 参数化的思维只需记住一点:不要写死 一.登录函数 1.s参数是session的一个实例类,先放这里,方便写后面代码 2.登录函数传三个参数,s是需要调用前面的session类,所以必传,可以传个登录的url,然后payload是账号和密码 二.保存草稿 1.编辑内容的标题title和正文body_data参数化了,这样后面可以方便传不同值 2.这里返回了

python接口自动化之openpyxl学习

python接口自动化之openpyxl学习 由于接口自动化测试需要用到python的第三方库--openpyxl库,运用openpyxl库可以进行exl的读和写,再结合unittest测试框架,就能进行接口自动化测试. 一:openpyxl库的安装:pip install openpyxl   二:查看openpyxl库的属性 import openpyxldir1= dir(openpyxl)print(dir1) ['DEFUSEDXML', 'LXML', 'NUMPY', 'PANDA

2020年第二期《python接口自动化+测试开发》课程,预售!

2020年第二期<python接口自动化+python测试开发>课程,12月15号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:12月15号-3月29号,每周六.周日晚上20:30-22:30 报名费:报名费3000一人(周期3个月) 联系QQ:283340479 课表如下 课程主要涉及的内容: 1.fiddler抓包与接口测试(测试基础必备) 2.python+pytest框架实现接口自动化测试(pytest框架甩unittest几条街) 3.httpr

2020年第三期《python接口自动化+测试开发》课程,4月5号开学(火热报名中!)

2020年第三期<python接口自动化+python测试开发>课程,4月5号开学(火热报名中!) 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学,方便交流 本期上课时间:4月5号-6月27号,每周六.周日晚上20:30-22:30 报名费:报名费3000一人(周期3个月) 联系QQ:283340479 课表如下 课程主要涉及的内容: 1.fiddler抓包与接口测试(测试基础必备) 2.python+pytest+allure框架实现接口自动化测试(pytest框架甩unittest几条

python接口自动化9-https请求(SSL)

前言 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会报:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 小编环境: python:2.7.12 requests:2.13.0 fiddler:v4.6.2.0 一.SSL问题 1.不启用fiddler,直接发htt

python接口自动化2-发送post请求

前言 发送post的请求参考例子很简单,实际遇到的情况却是很复杂的,首先第一个post请求肯定是登录了,但登录是最难处理的.登录问题解决了,后面都简单了. 一.查看官方文档 1.学习一个新的模块,其实不用去百度什么的,直接用help函数就能查看相关注释和案例内容. >>import requests >>help(requests) 2.查看python发送get和post请求的案例 >>> import requests       >>> r

python接口自动化5-Json数据处理

前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的参数就行,这时候就需要json来解析返回的数据了. 一.json模块简介 1.Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式,常用于http请求中 2.可以用help(json),查看对应的源码注释内容 Encoding basic P

python接口自动化10-token登录

前言 有些登录不是用cookie来验证的,是用token参数来判断是否登录. token传参有两种一种是放在请求头里,本质上是跟cookie是一样的,只是换个单词而已:另外一种是在url请求参数里,这种更直观. 一.登录返回token 1.如下图的这个登录,无cookies 2.但是登录成功后有返回token 二.请求头带token 1.登录成功后继续操作其它页面,发现post请求的请求头,都会带token参数 2.这种请求其实比cookie更简单,直接把登录后的token放到头部就行 三.to