第三题:按照以下步骤在PyCharm中进行自动化测试脚本编写,并执行脚本。
测试数据:
步骤1:新建csv格式的测试数据testdata.csv,并编写csvv.py脚本读取csv中的测试数据。
步骤2:新建test01.py
(1)引入步骤1中的写好的数据读取的方法(使用unittest测试框架);
(2)增加智能时间等待5秒;
(3)通过id属性定位用户名输入框,并输入用户名sysadmin;
(4)通过name属性定位密码输入框,并输入密码SysAdmin123;
(5)查看登录页面中的登录按钮元素,通过tag_name方法定位登录按钮,使用click()方法点击登录按钮进入资产管理系统首页;
(6)通过partial_link_text方法进行定位,使用click()方法点击“存放地点”按钮;
(7)通过xpath方法点击“新增”按钮;
(8)通过数据驱动输入“存放地点名称”和“备注”;
(9)通过xpath方法定位并点击“保存”按钮;
(10)定位并获取提示信息文字,通过assertEqual断言方法来验证预期结果和实际结果是否一致;
(11)通过unittest.main()方法执行测试用例。
相关代码:
步骤1: 新建testdata.csv
步骤2:新建csvv.py文件
import csv
def read():
path = r'C:\data\testdata3.csv'
stream= open(path,'r')
data = csv.reader(stream)
list = []
i = 0
for row in data:
if i != 0:
list.append(row)
i = i + 1
return list
步骤3:test01.py文件
import unittest
import ddt
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from ddt import ddt,data,unpack
import csvv
from time import sleep
@ddt
class test(unittest.TestCase):
shuju = csvv.read()
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5)
cls.driver.maximize_window()
@data(*shuju)
@unpack
def test_01(self,title,beizhu,equal):
self.driver.get("http://192.168.5.10/ams/front/login.do")
self.driver.find_element_by_id('taskId').send_keys('10')
self.driver.find_element_by_id('loginName').send_keys('dxx04')
self.driver.find_element_by_name('password').send_keys('dxx04')
self.driver.find_element_by_tag_name('button').click()
self.driver.find_element_by_partial_link_text('存放地点').click()
self.driver.find_element_by_xpath('//*[@id="fmsearch"]/div/button').click()
select = Select(self.driver.find_element_by_id('assetTypeId'))
select.select_by_visible_text('其他')
self.driver.find_element_by_id('title').send_keys(title)
self.driver.find_element_by_id('remark').send_keys(beizhu)
self.driver.find_element_by_id('submitButton').click()
sleep(2)
result = self.driver.switch_to.alert.text
self.assertEqual(result,equal)
self.driver.switch_to.alert.accept()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
if __name__ == '__main__':
unittest.main()