ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

WEB自动化测试(六)

2022-04-13 20:02:03  阅读:75  来源: 互联网

标签:WEB self driver html 测试 自动化 import div def


公共方法

          在common包下创建public.py的模块,里面主要编写针对文件路径的处理,具体源码如下:

import os

def base_dir():
return os.path.dirname(os.path.dirname(__file__))



数据驱动

           下来在data的文件夹下创建sina.json的文件,把登录使用到的数据分离到sina.json的文件里面,该文件

的具体内容为:

{
"null":"请输入邮箱名",
"format":"您输入的邮箱名格式不正确",
"error":"请输入正确的新浪邮箱帐号和密码",
"null1": "请输入密码",
"letter": "手机号码输入格式错误",
"success": "您的邮件已发送",
"shu": "35",
"name": "test"


}


工具类

            下来在具体的工具类中编写针对JSON文件的处理,创建的模块名称为:operationJson.py,具体源码为:

 

 

import json
import os
from common.public import base_dir

def readJson():
return json.load(open(file=os.path.join(base_dir(),'data','sina.json'),encoding='utf-8'))

# print(readJson())
 

 

 

 

 

 

 

练习自动化测试

 

新浪邮箱注册测试:

 

一、创建对象层

from selenium.webdriver.common.by import By
from base.base import WebUI
import time as t


class Registry(WebUI):
registry=(By.LINK_TEXT,'注册')
emailAddress=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[1]/span/input')
liJiReg=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[3]/ul/li/div/div/a')
emailNull=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[1]/div[3]/p/abbr')
passwd=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[2]/span/input')
emailNull2=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[2]/div[1]/p')
phoneNumber=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[4]/span/input')
emilNull3=(By.XPATH,'/html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[4]/div[1]/p')


def clickRegistry(self):
'''点击注册'''

self.findElement(*self.registry).click()

t.sleep(3)

def clickLijiReg(self):
'''点击立即注册'''
self.findElement(*self.liJiReg).click()
t.sleep(3)

def inputphoneNumber(self,number):
self.findElement(*self. phoneNumber).send_keys(number)
t.sleep(3)
self.clickLijiReg()

def inputEmailAddress(self,addrss):
self.findElement(*self.emailAddress).send_keys(addrss)
t.sleep(3)
self.clickLijiReg()

def inputPasswd(self,password):
self.findElement(*self.passwd).send_keys(password)
t.sleep(3)
self.clickLijiReg()

def getEmailValue(self):
return self.findElement(*self.emailNull).text

def getEmailValue2(self):
return self.findElement(*self.emailNull2).text

def getEmailValue3(self):
return self.findElement(*self.emilNull3).text



def switchReg(self):
'''切换到注册页面'''
nowHandler=self.driver.current_window_handle
self.clickRegistry()
allHandlers=self.driver.window_handles
for handler in allHandlers:
if handler!=nowHandler:
self.driver.switch_to.window(handler)
self.inputEmailAddress(addrss='')

def switchRegPasswd(self):
'''切换到注册页面测试密码'''
nowHandler=self.driver.current_window_handle
self.clickRegistry()
allHandlers=self.driver.window_handles
for handler in allHandlers:
if handler!=nowHandler:
self.driver.switch_to.window(handler)
self.inputPasswd(password='')



def switchRegNumber(self):
'''切换到注册页面测试手机号码'''
nowHandler=self.driver.current_window_handle
self.clickRegistry()
allHandlers=self.driver.window_handles
for handler in allHandlers:
if handler!=nowHandler:
self.driver.switch_to.window(handler)
self.inputphoneNumber(number='qwert')



二、创立测试层

from selenium import webdriver
import unittest
from page.login import Login
from page.registry import Registry
import time as t
from utlis.operationJson import readJson



class RegistryTest(unittest.TestCase,Registry,Login):
def setUp(self) -> None:
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.get('https://mail.sina.com.cn/')
self.driver.implicitly_wait(30)

def tearDown(self) -> None:
self.driver.quit()



def test_registry_email_address(self):
'''注册:邮箱地址为空的验证'''
self.switchReg()
self.assertEqual(self.getEmailValue(),readJson()['null'])
t.sleep(3)

def test_registry_email_passwd(self):
'''注册:密码为空的验证'''
self.switchRegPasswd()
self.assertEqual(self.getEmailValue2(),readJson()['null1'])
t.sleep(3)

def test_registry_email_number(self):
'''注册:手机号码为字母'''
self.switchRegNumber()
self.assertEqual(self.getEmailValue3(),readJson()['letter'])
t.sleep(3)



练习自动化测试二

新浪邮箱发送邮件测试:

对象层
from selenium.webdriver.common.by import By
from base.base import WebUI
import time as t
from selenium import webdriver


class Send(WebUI):
write=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[1]/div[1]/div[1]/ul/li[1]/a')
sendRen=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div/div[1]/div[2]/form/div/table/tbody/tr[2]/td/ul/li/input')
subject=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div/div[1]/div[2]/form/div/table/tbody/tr[6]/td/input')
emailContent=(By.XPATH,'/html/body/text()')
sendEmail=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div/div[1]/div[1]/span/span[1]/a/i[2]')
success=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[2]/div[1]/div[2]/div[2]/div[1]/div[1]/div/p[1]')
success2=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div/div[2]/div[1]/div/div[1]/div[2]/div[2]/ul/li[1]/a/span/b/i[1]')
success3=(By.XPATH,'/html/body/div[2]/div/div[5]/div[2]/div[2]/div[1]/div[2]/div[1]/div/div[1]/div[2]/div[1]/span[1]/em/span')
help=(By.XPATH,'/html/body/div[2]/div/div[12]/ul/li[1]/a')

name = (By.XPATH, '/html/body/form/div/div/input[1]')

def inputName(self, name2):
self.findElement(*self.name).send_keys(name2)
t.sleep(3)

def clickWrite(self):
t.sleep(3)
self.findElement(*self.write).click()


def inputSendRen(self,Ren):
'''收件人'''
self.findElement(*self.sendRen).send_keys(Ren)
t.sleep(3)

def inputSubject(self,ject):
'''主题'''
self.findElement(*self.subject).send_keys(ject)
t.sleep(3)

def clickSendEmail(self):
'''点击发送'''
self.findElement(*self.sendEmail).click()

def sendEmaiSuccess(self,sendPerson,subject):
'''发送邮件'''
self.clickWrite()
self.inputSendRen(Ren=sendPerson)
self.inputSubject(ject=subject)
self.clickSendEmail()

def clickHelp(self):
self.findElement(*self.help).click()
t.sleep(3)




def getSuccess(self):
return self.findElement(*self.success).text

def getSuccess2(self):
return self.findElement(*self.success2).text

def getSuccess3(self):
return self.findElement(*self.success3).text




测试层
from selenium import webdriver
import unittest
from page.login import Login
from page.send import Send
import time as t
from utlis.operationJson import readJson
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By

class SendTest(unittest.TestCase,Login,Send):
def setUp(self) -> None:
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.get('https://mail.sina.com.cn/#')
self.driver.implicitly_wait(30)

def tearDown(self) -> None:
self.driver.quit()

def test_send_email(self):
'''发送邮件'''
self.singLogin(username='wuya1303@sina.com',password='admin123')
self.sendEmaiSuccess(sendPerson='986435233@qq.com',subject='自动化测试')
self.assertEqual(self.getSuccess(),readJson()['success'])

def test_Unread_email(self):
'''未读邮件'''
self.singLogin(username='wuya1303@sina.com', password='admin123')
self.assertEqual(self.getSuccess2(),readJson()['shu'])

def test_email_name(self):
'''名称'''
self.singLogin(username='wuya1303@sina.com', password='admin123')
self.assertEqual(self.getSuccess3(),readJson()['name'])


 



标签:WEB,self,driver,html,测试,自动化,import,div,def
来源: https://www.cnblogs.com/duanshuyuan/p/16141831.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有