python+selenium 组织用例方式 总结
1、unittest.main()
将一个单元测试模块变为可直接运行的测试脚本,main()方法使用TestLoader类来搜索所有包含在该模块中以“test”命名开头的测试方法,并自动执行他们。执行方法的默认顺序是:根据ASCII码的顺序加载测试用例,数字与字母的顺序为:0-9,A-Z,a-z。所以以A开头的测试用例方法会优先执行,以a开头会后执行。
class Test_TC_Login(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(cc.driverPath())
self.base_url = cc.baseUrl()
self.testCaseInfo = TestCaseInfo(id=1, name="Test case name", owner='xua')
self.testResult = TestReport()
LogUtility.CreateLoggerFile("Test_TC_Login") def test_A(self):
try:
self.testCaseInfo.starttime = cc.getCurrentTime()
# Step1: open base site
LogUtility.Log("Open Base site" + self.base_url)
self.driver.get(self.base_url) # Step2: Open Login page
login_page = LoginPage(self.driver) # Step3: Enter username & password
LogUtility.Log("Login web using username")
login_page.set_username("username")
login_page.set_password("password") time.sleep(2)
# Checkpoint1: Check popup dialog title
LogUtility.Log("Check whether sign in dialog exists or not")
self.assertEqual(login_page.get_DiaglogTitle(), "Sign in") # time.sleep(3)
# Step4: Cancel dialog
login_page.click_cancel()
self.testCaseInfo.result = "Pass" except Exception as err:
self.testCaseInfo.errorinfo = str(err)
LogUtility.Log(("Got error: " + str(err)))
finally:
self.testCaseInfo.endtime = cc.getCurrentTime()
self.testCaseInfo.secondsDuration = cc.timeDiff(self.testCaseInfo.starttime, self.testCaseInfo.endtime) def tearDown(self):
self.driver.close()
self.testResult.WriteHTML(self.testCaseInfo) if __name__ == '__main__':
unittest.main()
2、批量执行:suite.addTest
if __name__=="__main__":
suite = unittest.TestSuite()
suite.addTest(TestIndex("test_index")) #类里的某个测试方法
suite.addTest(TestSys('test_ddt'))
runner=unittest.TextTestRunner()
runner.run(suite)
这样你可以在一个文件里面执行所有的用例,也可以使用“#”注释掉当前不需要执行的那条用例
3、unittest.defaultTestLoader.discover
defaultTestLoader()类,通过该类下面的discover()方法可自动更具测试目录start_dir匹配查找测试用例文件(test*.py),并将查找到的测试用例组装到测试套件,因此可以直接通过run()方法执行discover。用法如下:
discover=unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
if __name__ == "__main__":
# 设置报告文件保存路径
report_path = os.getcwd() + '/test_report/'
# 获取系统当前时间
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
# 设置报告名称格式
HtmlFile = report_path + now+"自动化测试报告.html"
fp = open(HtmlFile, "wb") suiteA = unittest.TestLoader().loadTestsFromTestCase(TestSys)
suiteB = unittest.TestLoader().loadTestsFromTestCase(TestAuth)
suite = unittest.TestSuite([suiteA, suiteB]) runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"商户管理系统测试报告", description=u"用例测试情况")
#runner = unittest.TextTestRunner()
runner.run(suite)
python+selenium 组织用例方式 总结的更多相关文章
- python selenium 三种等待方式详解[转]
python selenium 三种等待方式详解 引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待 ...
- Python selenium 三种等待方式详解
1. 强制等待第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间.看代码: # -*- coding: ...
- python+selenium二:定位方式
# 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...
- Python selenium 三种等待方式详解(必会)
很多人在群里问,这个下拉框定位不到.那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待.殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么 ...
- Python selenium 三种等待方式解读
1. 强制等待第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间.看代码: # -*- coding: ...
- Python+Selenium - 三种等待方式
元素:存在 > 可见 > 可用 需要判断元素状态 等待方式1:强制等待 -- 辅助 设置等待几秒,就必须等待几秒 示例: from time import sleepsleep(3) 强 ...
- python selenium(用例断言)
1.if ...else ...判断进行断言 from time import * from selenium import webdriver "): driver = webdriver ...
- Python Selenium系列学习
以下记录刚接触Python Selenium操作Web UI的学习问题: 1.python selenium三种等待方式: ①强制等待:time.sleep(value):设置等待最简单的方法就是强制 ...
- Python Selenium设计模式-POM
前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python s ...
随机推荐
- Bootstrap中的Affix插件
我们为什么要用bootstrap?因为懒!哦....不,是因为方便,呃...意思差不多. 今天来说说Affix这个插件,它可以使导航栏固定,免去了自己手写的麻烦,用着非常方便,废话不多说,下面是用法. ...
- 【bzoj3196】Tyvj 1730 二逼平衡树 线段树套Treap
题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义 ...
- JS设置cookie,读取cookie,删除cookie
总结了一下cookie的使用,不全面.都是基础的知识,后期还会再添加. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- Java Web开发之路(一)——环境配置
1. 下载JDK(Java Development Kit)工具包.其中包括运行Java程序所必须的JRE环境及开发过程中常用的库文件. (JDK与JRE的关系: JDK是Java的开发环境,在编写J ...
- WPS是个坑
WPS2016 10.1.0.5740 存储的EXCEL表格文件,用PHP mime_content_type函数获取到的mime类型是“application/zip”
- HDOJ.2501 Tiling_easy version
Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 【POJ 3169 Layout】
Time Limit: 1000MSMemory Limit: 65536K Total Submissions: 12565Accepted: 6043 Description Like every ...
- 【NOIP模拟赛】与非 乱搞
biubiu~~~ 正解是线段树维护真值表,但是我觉得对于这道题来说乱搞就够了....... 我们发现如果我们把每一个数都一开始取反就会发现对于最后结果来说 x=x^1,x nand x=x|x ,x ...
- 【bzoj2038】[国家集训队2010]小Z的袜子 莫队
莫队:就是一坨软软的有弹性的东西Duang~Duang~Duang~ 为了防止以左端点为第一关键字以右端点为第二关键字使右端点弹来弹去,所以让左端点所在块为关键字得到O(n1.5)的时间效率,至于分块 ...
- 如何加快JavaScript的加载与执行
JS 有个很无语的阻塞特性,就是当浏览器在执行JS 代码时,不能同时做其他任何事情,无论其代码是内嵌的还是外部的. 浏览器在碰到一个引入外部JS 文件的<script>标签时会停下所有工作 ...