demo.py :
执行该文件,完成第一个目标:实现自动打开网页、输入待转换数据、点击转换按钮、获取转换结果的过程。
convert_up_low_test.py: 实现第二个目标:使用unittest ,对不同的输入数据进行测试和验证结果。
使用 pytest 执行测试用例,并生成对应的 html report。
- 安装pytest: pip install pytest
- 安装pytest-html: pip install pytest-html
执行 run_pytest.bat 文件,将查找当前目录中 test 开头的py 文件,并执行其中的 test 方法,最终生成 html 格式的报告。
test_report_20180805-233950.html
behavior 模块, 样例:
Feature: test for the lower-upper convent
Scenario: convent lower to upper
When I open page
When I input "abcdefghijk"
When I click "大写"
Then I see "ABCDEFGHIJK"
-
page_object.py : 存放页面元素对象及对应操作方法
-
test_run_as_page_object.py: 10条用例,分别在百度页面搜索一个关键字,并验证查询结果第一条是否包含关键字。
- 以关键字的方式组织用例步骤,可以将用例从脚本中脱离。
- keywords.py 文件中定义了不同关键字对应的执行方法
- 用例样例:
Chrome,前往|http://www.baidu.com,验证标题|百度一下,填写|id@@kw@@百度,点击|id@@su,验证文字|xpath@@//*[@id="1"]/h3/a/em@@百度
- 关键字格式:
关键字|元素定位方式@@元素属性值@@其他参数。
如: 填写|id@@kw@@百度 表示步骤为“填写”, 通过 id = kw 定位元素,并在定位元素中输入 “百度”
- steps.py 文件中定义了关键字对应的执行方法
- test_run_as_data_driven.py 文件中给出了5条对应的例子,分别对百度首页五个链接和功能进行测试。
- 用例可以使用不同的存储方式进行独立存储,完全脱离于执行用例的脚本。
- 可通过数据库、excel、txt 等不同的方式存储用例。 这里以txt 为例,演示如何读取用例并执行。
- 为提高测试执行效率,使用multiprocessing 模块对用例进行并发执行。 可根据需要设置具体的并发数。
- page_object.py : 存放页面元素对象及对应操作方法
self.search_box =(By.ID,'kw')
self.search_button = (By.ID,'su')
self.search_result = (By.XPATH,'//*[@id="1"]/h3/a[1]/em')
- test_run_as_page_object.py: 调用方式如下
self.driver.find_element(*testBaiduPage().search_box).send_keys('testerhome')
self.driver.find_element(*testBaiduPage().search_button).click()
assert 'TesterHome' in self.driver.find_element(*testBaiduPage().search_result).text
('keyword,language,result',[
('test','英语','测验'),
('android','英语','安卓'),
('mobile','英语','可移动的'),
('country','英语','国'),
('value','英语','价值'),
('football','英语','足球运动'),
('篮球','中文(简体)','Basketball'),
('Futebol','葡萄牙语','足球运动'),
('ワールドカップ','日语','世界杯'),
('网球','中文(简体)','Tennis'),
('Copa del mundo','西班牙语','世界杯'),
('足球','中文(简体)','Football'),
])
def test_baidu_translate(homepage_driver,keyword,language,result):