python3.6+selenium3.13 自动化测试项目实战一
Posted 旭旭杂货店
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.6+selenium3.13 自动化测试项目实战一相关的知识,希望对你有一定的参考价值。
一.项目介绍
目的:
测试某官方网站登录功能模块可以正常使用
用例:
1.输入格式正确的用户名和正确的密码,验证是否登录成功; 2.输入格式正确的用户名和不正确的密码,验证是否登录失败,并且提示信息正确; 3.输入格式正确的用户名和任意密码,验证是否登录失败,并且提示信息正确; 4.用户名和密码两者都为空,验证是否登录失败,并且提示信息正确; 5.用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确;
环境:
Windows10 +Python3.6+selenium3.13+Pycharm
环境我想大多数人都会搭建,有事没事找百度,一搜一箩筐,哈哈!我自己刚学的时候也是各种问题各种百度,好在都解决了,感谢有度娘这么强大的存在!这里就不写环境怎么搭建了,直接进入主题
二.脚本设计
目的:
我们的测试脚本需要达到:脚本可移植,脚本模块化,测试数据分离,输出测试报告 等目的
脚本设计模式:
代码实现:
项目目录结构
注:下面的文件存放在同一个目录下
login_test.py 文件
1 #! user/bin/python
2 \'\'\'
3 代码说明:麦子学院登录模块自动化测试用例脚本
4 编写日期:
5 设置者:linux超
6 \'\'\'
7
8 import time
9 from selenium import webdriver
10 from webinfo import webinfo
11 from userinfo import userinfo
12 from log_fiile import login_log
13 from pathlib import Path
14
15 def open_web():
16 driver = webdriver.Firefox()
17 driver.maximize_window()
18 return driver
19
20 def load_url(driver,ele_dict):
21 driver.get(ele_dict[\'Turl\'])
22 time.sleep(5)
23
24 def find_element(driver,ele_dict):
25 # find element
26 driver.find_element_by_class_name(ele_dict[\'image_id\']).click()
27 if \'text_id\' in ele_dict:
28 driver.find_element_by_link_text(\'登录\').click()
29
30 user_id = driver.find_element_by_id(ele_dict[\'userid\'])
31 pwd_id = driver.find_element_by_id(ele_dict[\'pwdid\'])
32 login_id = driver.find_element_by_id(ele_dict[\'loginid\'])
33 return user_id,pwd_id,login_id
34
35 def send_val(ele_tuple,arg):
36 # input userinfo
37 listkey = [\'uname\',\'pwd\']
38 i = 0
39 for key in listkey:
40 ele_tuple[i].send_keys(\'\')
41 ele_tuple[i].clear()
42 ele_tuple[i].send_keys(arg[key])
43 i+=1
44 ele_tuple[2].click()
45 def check_login(driver,ele_dict,log,userlist):
46 result = False
47 time.sleep(3)
48 try:
49 err = driver.find_element_by_id(ele_dict[\'error\'])
50 driver.save_screenshot(err.text+\'.png\')
51 log.log_write(\'账号:%s 密码:%s 提示信息:%s:failed\\n\' %(userlist[\'uname\'],userlist[\'pwd\'],err.text))
52 print(\'username or password error\')
53 except:
54 print(\'login success!\')
55 log.log_write(\'账号:%s 密码:%s :passed\\n\'%(userlist[\'uname\'],userlist[\'pwd\']))
56 #login_out(driver,ele_dict)
57 return True
58 return result
59 def login_out(driver,ele_dict):
60 driver.find_element_by_class_name(ele_dict[\'logout\']).click()
61 \'\'\'
62 def screen_shot(err):
63 i = 0
64 save_path = r\'D:\\pythondcode\\capture\'
65 capturename = \'\\\\\'+str(i)+\'.png\'
66 wholepath = save_path+capturename
67 if Path(save_path).is_dir():
68 pass
69 else:
70 Path(save_path).mkdir()
71 while Path(save_path).exists():
72 i+=1
73 capturename = \'\\\\\'+str(i)+\'.png\'
74 wholepath = save_path + capturename
75 err.screenshot(wholepath)
76 \'\'\'
77 def login_test():
78 log = login_log()
79 #