标签:elf des python bubuko inf rom cti run name
‘‘‘ 时间:2018/11/04 目录: 一: 禅道登录
1 工程结构 2 unittest文件 3 实现功能文件
4 执行结果 二: 禅道登录 - 报告
1 工程结构 2 Common 3 TestCase 4 TestFunction 5 TestReport 6 run_all.py
7 执行结果 三: 拉勾网登录 四: 博客园登录 ‘‘‘
一: 禅道登录
1 工程结构
1 : 主要两个文件,unittest文件和操作文件。
2 : unittest文件的功能:输入数据、预期结果、断言判断。
2 : 操作文件的功能:步骤执行、返回实际结果 。
2 unittest文件
# coding:utf-8 import unittest from chandao_login.chandao_login_api_v2 import * class TestLogin(unittest.TestCase): #session = requests.session() def setUp(self): self.session = requests.session() def tearDown(self): self.session.cookies.clear() # 清除缓存 - cookies self.session.close() # 去除警告 - 关闭进程 def test_001(self): ‘‘‘ 登录成功: 正确账号 + 正确密码 ‘‘‘ strUser = "admin" strPass = "123456" strResult = Login(self.session, strUser, strPass) bResult = DecideResult(strResult) self.assertTrue(bResult) def test_002(self): ‘‘‘ 登录失败: 正确账号 + 错误密码 ‘‘‘ strUser = "admin" strPass = "123456789" strResult = Login(self.session, strUser, strPass) bResult = DecideResult(strResult) self.assertFalse(bResult) def test_003(self): ‘‘‘ 登录失败: 错误账号 + 错误密码 ‘‘‘ strUser = "admin123" strPass = "123456789" strResult = Login(self.session, strUser, strPass) bResult = DecideResult(strResult) self.assertFalse(bResult) if __name__ == ‘__main__‘: unittest.main()
3 实现功能文件
# coding:utf-8 import requests url = "http://127.0.0.1/zentao/user-login.htm" # url经常变 : 做全局变量 - 做配置文件 def Login(session, strUser, strPass): ‘‘‘ 登录禅道 :param session: session :param strUser: 用户名 :param strPass: 密码 :return: 请求结果 - 服务端 ‘‘‘ body = { "account": strUser, "password": strPass, "keepLogin[]": "on", "referer": "/zentao/my.html" } r = session.post(url, data = body) strResult = r.content.decode("utf-8") return strResult def DecideResult(strResult): ‘‘‘ 判断结果 - 登录禅道 :param strResult: 请求结果 - 服务端 :return: ‘‘‘ if "登录失败" in strResult: print("登录失败") return False elif "parent.location" in strResult: print("登录成功") return True else: print("登录失败 - 其他情况") return False if __name__ == ‘__main__‘: s = requests.session() result = Login(s, "admin", "123456") DecideResult(result)
4 执行结果
1 : 测试用例全部运行pass。
1 : 测试用例有failed。
二: 禅道登录 - 报告
1 工程结构
1 : 由5个部分组成:4个文件夹 + 1个运行文件。
2 : Common文件夹: 存放公共的文件
3 : TestCase文件夹: 存放unittest文件
4 : TestFunction文件夹: 存放功能操作文件
5 : TestReport文件夹: 存放测试报告文件
6 : run_all.py: 执行测试、生成报告。
2 Common
1 : 使用第三方 HTMLTestRunner_cn.py,方便查看测试结果。
3 TestCase
# coding:utf-8 import unittest from TestFunction.chandao_login_api import * class TestLogin(unittest.TestCase): #session = requests.session() def setUp(self): self.session = requests.session() def tearDown(self): self.session.cookies.clear() # 清除缓存 - cookies self.session.close() # 去除警告 - 关闭进程 def test_001(self): ‘‘‘ 登录成功: 正确账号 + 正确密码 ‘‘‘ strUser = "admin" strPass = "123456" strResult = Login(self.session, strUser, strPass) bResult = DecideResult(strResult) self.assertTrue(bResult) def test_002(self): ‘‘‘ 登录失败: 正确账号 + 错误密码 ‘‘‘ strUser = "admin" strPass = "123456789" strResult = Login(self.session, strUser, strPass) bResult = DecideResult(strResult) self.assertFalse(bResult) def test_003(self): ‘‘‘ 登录失败: 错误账号 + 错误密码 ‘‘‘ strUser = "admin123" strPass = "123456789" strResult = Login(self.session, strUser, strPass) bResult = DecideResult(strResult) self.assertFalse(bResult) if __name__ == ‘__main__‘: unittest.main()
4 TestFunction
# coding:utf-8 import requests url = "http://127.0.0.1/zentao/user-login.htm" # url经常变 : 做全局变量 - 做配置文件 def Login(session, strUser, strPass): ‘‘‘ 登录禅道 :param session: session :param strUser: 用户名 :param strPass: 密码 :return: 请求结果 - 服务端 ‘‘‘ body = { "account": strUser, "password": strPass, "keepLogin[]": "on", "referer": "/zentao/my.html" } r = session.post(url, data = body) strResult = r.content.decode("utf-8") return strResult def DecideResult(strResult): ‘‘‘ 判断结果 - 登录禅道 :param strResult: 请求结果 - 服务端 :return: ‘‘‘ if "登录失败" in strResult: print("登录失败") return False elif "parent.location" in strResult: print("登录成功") return True else: print("登录失败 - 其他情况") return False if __name__ == ‘__main__‘: s = requests.session() result = Login(s, "admin", "123456") DecideResult(result)
5 TestReport
1 : 运行完程序,生成一个report.html文件。
1 : 测试用例全部运行pass。
1 : 测试用例有failed。
6 run_all.py
# coding:utf-8 import unittest import os from Common import HTMLTestRunner_cn # 路径兼容 - windows/mac cur_path = os.path.dirname(os.path.realpath(__file__)) # 获取路径 - 当前脚本 cur_path = os.path.join(cur_path, "TestCase") # 拼接路径 # 显示结果 - unnitest pattern = "test*.py" # 匹配文件 discover = unittest.defaultTestLoader.discover(start_dir = cur_path, pattern = pattern) print(discover) # 路径兼容 - windows/mac cur_path = os.path.dirname(os.path.realpath(__file__)) # 获取路径 - 当前脚本 report_path = os.path.join(cur_path, "TestReport", "report.html") fp = open(report_path, "wb") runner = HTMLTestRunner_cn.HTMLTestRunner(stream = fp, # 报告路径 title = "接口测试用例报告", # 报告标题 description = "测试用例详情报告", # 报告描述 retry = 1, # 错误重写执行 verbosity = 2) # 注释显示 runner.run(discover)
三: 拉勾网登录
四: 博客园登录
标签:elf des python bubuko inf rom cti run name
原文地址:https://www.cnblogs.com/huafan/p/9906010.html