简单的自动化测试模型(Python+Selenium)

发表于:2018-1-23 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:加班使我变丑智商下降    来源:博客园

  (3)、读取字典
userconfig.py
# coding:utf-8
def username_password():
config = {"username": "CJOKER", "password": "123456"}
return config
login.py
# coding:utf-8
from time import sleep
from selenium import webdriver  # 从selenium中引入webdriver
import userconfig  # 引入userconfig文件
Data = userconfig.username_password()
un = Data["username"]
pw = Data["password"]
def login_mantis_by_txt():
driver = webdriver.Firefox()  # 选择打开的浏览器
driver.maximize_window()  # 浏览器窗口最大化
driver.implicitly_wait(3)  # 隐式等待
driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php")  # 获取URL,打开页面
sleep(1)  # 直接等待
username_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input")  # 获取输入账号框
username_input.send_keys(un)  # 输入账号
sleep(1)
password_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input")  # 获取输入密码框
password_input.send_keys(pw)  # 输入密码
sleep(1)
login_button = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input")  # 获取登录按钮
login_button.click()  # 点击登录按钮
sleep(3)
driver.quit()  # 退出浏览器
  上面的代码实现了将账号密码放在一个字典内,再去调用,进行登录操作。
  (4)、csv文件
# coding:utf-8
import os  # 引入os模块
import csv  # 引入csv包
from time import sleep  # 引入sleep方法
from selenium import webdriver  # 从selenium中引入webdriver
list_username = []
list_password = []
data = csv.reader(file('G:\\joker_study\\userconfig.csv', 'rb'))  # 获取每列数据
for user in data:
print user[0]  # 获取第一列中从上往下的数据
list_username.append(user[0])  # 将每次读取的字符串加入到数组中
print user[1]  # 获取第二列中从上往下的数据
list_password.append(user[1])  # 将每次读取的字符串加入到数组中
def login_mantis_by_csv():
for i in range(len(list_username)):
driver = webdriver.Firefox()  # 选择打开的浏览器
driver.maximize_window()  # 浏览器窗口最大化
driver.implicitly_wait(3)  # 隐式等待
driver.get("http://192.168.1.201/mantisbt-1.2.19/login_page.php")  # 获取URL,打开页面
sleep(1)  # 直接等待
username_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[2]/td[2]/input")  # 获取输入账号框
username_input.send_keys(str(list_username[i]))  # 输入账号
sleep(1)
password_input = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[3]/td[2]/input")  # 获取输入密码框
password_input.send_keys(str(list_password))  # 输入密码
sleep(1)
login_button = driver.find_element_by_xpath("html/body/div[3]/form/table/tbody/tr[6]/td/input")  # 获取登录按钮
login_button.click()  # 点击登录按钮
sleep(3)
driver.quit()  # 退出浏览器
  上 面的代码实现了将账号密码分别存在一个CSV表格中,通过csv.reader将每列都读取出来,user[0]第一列,user[1]第二列,一次类 推。需要注意的是,要讲CSV文件打开的格式和工具格式保持一致:在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编 码方式为utf-8、Unicode等编码可能就会出现文件乱码的情况。
  4、关键字驱动
  采用EXCEL或者QTP及robot framework等工具大部分都是以关键字驱动来实现自动化测试,这种方式由于只需要关注"我要做什么(命令)?对谁做(对象)?怎么做(值)?",目前还没有去采用这种方式去写作脚本,等学习了robot framework或者用到这种方式的时候,再记录补充下吧。
  例如这种EXCEL表格(网上随意复制过来)中所示:

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • wyl1995
    2018-1-29 14:01:44

    def 下面的代码排版,,看着太难受了,随口说的,希望不要介意

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号