编写自动化测试用例(一)

import unittest
from selenium import webdriver
from time import sleep

class LoginCase(unittest.TestCase):

def setUp(self):
self.dr=webdriver.Chrome()
self.dr.maximize_window()

def login(self,username,password):
self.dr.get('https://passport.cnblogs.com/user/signin')#cnblog登录页面
self.dr.find_element_by_id('input1').send_keys(username)
self.dr.find_element_by_id('input2').send_keys(password)
self.dr.find_element_by_id('signin').click()

def test_login_success(self):
'''用户名、密码正确'''
self.login('你很甜!','ccccc')
sleep(3)
link=self.dr.find_element_by_xpath('//*[@id="captchaBox"]/div/div[2]/div[1]/div[1]/div[1]')
#self.assertTrue('你很甜!' in link.text)#用assertTrue(x)方法来断言bool(x) is True 登陆成功后用户昵称在link_curren_user里
self.dr.find_element_by_xpath("//*[@id="captchaBox"]/div/div[3]").click()
self.dr.get_screenshot_as_file('D://cnblogtest//login_success.png')#截图,可自定义截图后的保存位置和图片命名

def test_login_pwd_null(self):
'''用户名正确,密码不正确'''
self.login('xxx','111')
sleep(2)
error_message=self.dr.find_element_by_id('tip_btn').text
self.assertIn('用户名或密码错误',error_message)
self.dr.get_screenshot_as_file('D://cnblogtest//login_pwd_error.png')

def test_login_pwd_null(self):
'''用户名正确,密码为空'''
self.login('xxx','')
error_message=self.dr.find_element_by_id('tip_input2').text
self.assertEqual(error_message,'请输入密码')
self.dr.get_screenshot_as_file('D://cnblogtest//login_pwd_null.png')

def test_login_user_error(self):
'''用户名错误,密码正确'''
self.login('wwc','xxxxxx')
sleep(2)
error_message=self.dr.find_element_by_id('tip_btn').text
self.assertIn('该用户不存在',error_message)
self.dr.get_screenshot_as_file('D://cnblogtest//login_user_error.png')

def test_login_user_null(self):
'''用户名为空,密码正确'''
self.login('','cccccc')
error_message=self.dr.find_element_by_id('tip_input1').text
self.assertEqual(error_message,'请输入登录用户名')
self.dr.get_screenshot_as_file('D://cnblogtest//login_user_null.png')

def tearDown(self):
sleep(2)
print('自动测试完毕!')
self.dr.quit()

if __name__ == '__main__':
unittest.main()


以上是在IDEA中编写的python自动化测试用例,遇到的问题大致有:
(一):ImportError: cannot import name 'webdriver' from 'selenium' (C:UsersMr.SuPycharmProjects***venvselenium.py)
原因是我给我的python文件命名为selenium,所以在import selenium的时候有冲突,所以解绝方法就是重命名文件名
(二):用于保存屏幕截图的名称与文件类型不匹配。它应该以扩展名“.png”结尾
(三):AssertionError: '该用户不存在' not found in ''
(四):遇到了滑动验证,需要使用from PIL import Image,报红了,解决方案是在IDEA的项目中 file->project structure->paltform settings->SDKs->packages中添加module 安装PIL 需要安装pillow



最后总结一下自己一开始写的时候的迷惑点:
1.unittest中的执行顺序是先执行前置,然后执行用例,在执行后置,最后结束,然后再继续其他的用例
2.定义的函数必须是以test开头的,不然不会被执行,用例执行顺序不固定


原文地址:https://www.cnblogs.com/lht02/p/10773064.html