python自动化测试(web自动化测试)selenium框架安装setuptools安装,pip安装,完整全解析实战分析步骤(全网最详细,全资源源码打包)

python自动化测试(web自动化测试)selenium框架安装setuptools安装,pip安装,完整全解析实战分析步骤(全网最详细,全资源源码打包),第1张

资源源码地址:python自动化测试(web自动化测试)含教程-Python文档类资源-CSDN下载

最简单的形势完整展示自动化测试

一、测试计划(需求说明书).doc

测试对象:https://www.baidu.com/

测试目的:检查登录功能的BUG

测试内容:登录功能

测试方法:自动化测试+人工测试

备注:一般有专人对接客户询问需求,拿着需求模板去找客户,或者他主动给你

二、分析测试需求.doc(根据测试计划或者需求说明书)

分析后得知这个是web测试下的功能测试,用selenium架构就能解决

备注:web项目b/s结构,app项目c/s结构

自动化工具:APP一般使用Appium;Web一般使用Selenium。

性能测试工具:APP一般使用JMeter;Web一般使用LR、JMeter

Web测试、App测试、接口测试到底测什么?_展望之客的博客-CSDN博客_web测试都测什么

三、设计测试用例.doc

1.用户名密码同时为空登录时反应

2.只输用户名不输密码登录时反应

3.只输密码不输用户名登录时反应

4.输入错误的用户名密码登录反应

5.输入一长串用户名密码反应

备注:一般公司都有自己的测试用例模板文档大概长这样,没有的话就自己想,自己写

 四、搭建测试环境

本教程用的selenium框架做演示

1.安装selenium

报错:UserWarning: Distutils was imported before Setuptools, but importing Setupt
ools also replaces the `distutils` module in `sys.modules`. This may lead to und
esirable behaviors or errors. To avoid these issues, avoid using distutils direc
tly, ensure that setuptools is installed in the traditional way (e.g. not an edi
table install), and/or make sure that setuptools is always imported before distu
tils.

处理办法:

必须先装setuptools——》才能装pip——》才能安装selenium

安装setuptools(找与python对应的版本不然报错):https://pypi.org/project/setuptools/3.5.2/#history

安装命令:python setup.py install

检查是否安装成功命令:easy_install

安装pip(找与python对应的版本不然报错)https://bootstrap.pypa.io/pip/

 安装命令:python get-pip.py

检测安装成功命令:pip

   

 安装selenium(找与python对应的版本不然报错)https://pypi.org/project/selenium/3.5.0/#history

安装命令:pip install selenium 

检测安装成功命令:pip show selenium  ​​​​​

 成功了,有警示,意思是让你升级python版本

 安装浏览器和驱动:

安装谷歌浏览器确定你的浏览器版本并关闭自动更新

 关闭自动更新方法:https://jingyan.baidu.com/article/e5c39bf51d1a3d39d7603391.html 

根据版本下载驱动(如果没有对应版本就找一个相近的版本驱动)

Chrome驱动下载地址http://chromedriver.storage.googleapis.com/index.html


火狐驱动下载地址为:https://github.com/mozilla/geckodriver/releases/

把驱动文件解压出来放在python.exe同一文件夹

添加系统环境变量:D:\python+pyqt5+eirc6\python-3.5.2\chromedriver.exe; 

写测试代码testselenium.py:

import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com")
browser.find_element_by_id('kw').clear()
browser.find_element_by_id('kw').send_keys('火焰')
browser.find_element_by_id('su').click()
time.sleep(20)
browser.quit()

然后运行看结果:

成功安装! 

五、编写测试代码

 test_baiduLogin.py

#载入测试单元的
import unittest
#载入selenium的webdriver库函数
from selenium import webdriver
#载入time的时间控制库文件
from time import sleep
      # 自定义一个测试实例类,传入unittest的测试实例类TestCase
class TestBaidu(unittest.TestCase):
    #classmethod 修饰符对应的函数不需要实例化
    @classmethod
    #这个函数用来初始化的
    # cls : 表示没用被实例化的类本身用于调用类本身的属性
    def setUpClass(cls):
        #定义类本身属性driver作为浏览器
        cls.driver = webdriver.Chrome()
        #定义类本身属性base_url作为访问地址
        cls.base_url = "https://www.baidu.com/"

    def test_login_onlyuser(self):
     self.driver.get(self.base_url)
     self.driver.find_element_by_css_selector("#s-top-loginbtn").click()
     sleep(3)
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__userName").send_keys("admin")
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__submit").click()
     sleep(3)
     self.assertEqual(self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__error").text,"请您输入密码")

    def test_login_error_user_password(self):
     self.driver.get(self.base_url)
     self.driver.find_element_by_css_selector("#s-top-loginbtn").click()
     sleep(3)
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__userName").send_keys("admin")
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__password").send_keys("admin888")
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__submit").click()
     sleep(3)
     self.assertEqual(self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__error > a").text,"找回密码")

    def test_login_error_long_userpassword(self):
     self.driver.get(self.base_url)
     self.driver.find_element_by_css_selector("#s-top-loginbtn").click()
     sleep(3)
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__userName").send_keys("adminadfasdfsdfasfasdf")
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__password").send_keys("88888888")
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__submit").click()
     sleep(5)
     self.assertEqual(self.driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__error"]').text,"您输入的帐号格式不正确")
     
    def test_login_onlypassword(self):
     self.driver.get(self.base_url)
     self.driver.find_element_by_css_selector("#s-top-loginbtn").click()
     sleep(3)
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__password").send_keys("admin888")
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__submit").click()
     sleep(3)
     self.assertEqual(self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__error").text,"请您输入手机号/用户名/邮箱")
    
    def test_login_empty(self):
     self.driver.get(self.base_url)
     self.driver.find_element_by_css_selector("#s-top-loginbtn").click()
     sleep(3)
     self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__submit").click()
     sleep(3)
     self.assertEqual(self.driver.find_element_by_css_selector("#TANGRAM__PSP_11__error").text,"用户名密码不能为空")
    @classmethod
    def tearDownClass(cls):
        #退出浏览器
        cls.driver.quit()
 
 
if __name__ == '__main__':
    unittest.main()

备注常用元素定位与断言: selenium元素定位的常用八种方法_佳司海心的博客-CSDN博客_selenium元素定位八种方法

selenium常用断言_ai30001的博客-CSDN博客_selenium断言

selenium系列-常用元素 *** 作_beauty_m的博客-CSDN博客

获取常用元素属性:https://www.csdn.net/tags/NtjaYgwsODgxNzgtYmxvZwO0O0OO0O0O.html

通过谷歌浏览器定位元素的方法:打开谷歌浏览器——》打开开发者模式

定位到代码之后——》鼠标右键——》copy——》选择对应的元素标记  下载生成报告工具HTMLTestRunnerCN.py:https://github.com/findyou/HTMLTestRunnerCN

根据自己的python版本下载

把HTMLTestRunnerCN.py放到python安装目录的Lib文件夹下

 

然后测试:没报错就成功了!

 然后写生成报告文件.py

import unittest
from HTMLTestRunnerCN import HTMLTestReportCN
from selenium import webdriver
from time import sleep
# 定义测试用例的目录为当前目录下的test_case目录
test_dir = './test_case'
suit = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
if __name__ == '__main__':
    # 生成HMTL格式的报告
    fp = open('./test_report/result.html', 'wb')
    runner = HTMLTestReportCN(stream=fp,
                              title="百度登录测试报告",
                              description="运行环境:Windows 7, Chrome浏览器"
                              )
    runner.run(suit)
    fp.close()

fp = open('./test_report/result.html', 'wb')这段代码是存放报告文件的目录为 test_report

按照如下工程结构摆放好:

最后运行:然后写生成报告文件.py

 为防止出错注意检查工程文件结构:

为防止报错注意检查运行目录:

 

 找到报告文件并打开:

  六、分析测试结果、记录测试问题 

七. 跟踪测试BUG

。。。

谢谢观看!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/719080.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存