问卷调查系统测试报告

1、问卷调查系统设计背景

在当今数字化时代,信息收集与分析对于各行业的发展至关重要。传统问卷调查方式,如纸质问卷,存在发放与回收耗时费力、数据统计易出错且效率低下等问题。随着互联网的普及和移动设备的广泛应用,线上问卷调查需求日益增长。设计此问卷调查系统,旨在为用户提供便捷、高效、低成本的问卷创建、发布与数据分析平台。无论是企业市场调研、学术研究,还是社会组织活动反馈收集,都能借助该系统快速获取准确信息,以支持决策制定和业务优化。

2、项目功能

    1、登录功能

          

                                                                 登录界面

输入账号、输入密码、点击登录、即可完成登录

2、注册

      

                                                                点击注册账户

       

                                                 输入账号密码点击注册账户

3、创建问卷

                                                                  登录进入首页后点击创建问卷

                                             进入编辑界面输入标题、内容点击保存即可完成创建

3、测试计划

4、测试工具

   1)Xmind

        使用Xmind 绘制了需要的测试用例

          

    2)Pycharm和chrome

        使用Pycharm编写自动化脚本进行测试

       

     3)Postman

        使用Postman进行性能测试

5、设计到的测试设计类型

     1)功能测试 

              覆盖了,登录功能(正常登录,异常登录),注册功能(正常注册,异常注册),首页

(登录后的首页,未登录的首页),问卷的详情页(创建成功,创建失败)

     2)自动化测试

               

              覆盖了,登录功能(正常登录,异常登录),注册功能(正常注册,异常注册),首页

(登录后的首页,未登录的首页),问卷的详情页(创建成功,创建失败)

6、功能测试

       1)登录功能

              

                                     按照测试用例进行一步一步的操作

                                                          如正常登录,打开浏览器->

                                                                           ——>进入首页

                                                                             _>输入账号密码

                                                                        点击登录,登录成功

         2)注册功能

                

                                                            绘制思维导图

 如测试输入的密码小于6位:

                                                               打开登录界面

                                                        点击注册按钮

                                                输入账号,密码123,确认密码123

                                                                提示密码少于6位功能正常

3)创建调查问卷

                                                                        登录成功后进入首页

                                                                        点击创建问卷

                                                                             输入标题内容点击保存

                                                      在我的项目中找到创造的问卷,功能正常

7、自动化测试

  1)绘制思维导图

  2)编写测试程序

      配置文件:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core import driver


class Driver:
    driver = ""
    def __init__(self):
        options = webdriver.ChromeOptions()
        self.driver = webdriver.Chrome(service = Service(ChromeDriverManager().install()),options = options)
        self.driver.implicitly_wait(1)
    def screenshot(self):
        dirname = datetime.datetime.now().strftime("%Y-%m-%d")
        if not os.path.exists("../images/"+dirname):
            os.mkdir("../images/"+dirname)
        filename = sys._getframe().f_back.f_code.co_name+"-"+datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
        self.driver.save_screenshot("../images/"+dirname+"/"+filename)
AllDriver = Driver()

登录界面:

import time

from selenium.webdriver.common.by import By

from comom.Utils import AllDriver

class Login:
    url = ""
    driver = ""
    def __init__(self):
        self.url = "http://8.155.1.153:8081/user/login"
        self.driver = AllDriver.driver
        self.driver.get(self.url)
    def Login_quit(self):
        self.driver.quit()
    #成功登录测试
    def LoginSucTest(self,username,password):
        self.driver.find_element(By.CSS_SELECTOR,"#username").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#password").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
        time.sleep(1)
        AllDriver.screenshot()
        self.driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > div.ant-pro-layout-container > main > div > div.ant-page-header.ant-pro-page-container-warp-page-header.ant-pro-page-container-warp-page-header.ant-page-header-has-breadcrumb.ant-page-header-ghost > div.ant-page-header-content > div > div > div > div > div > div.content___1eLtZ > div.contentTitle___Yu-cR")
        self.driver.back()
    #1错误账号密码 或者 2不输入密码 3或不都不输入
    def LoginFulTest(self,username = None,password = None):
        self.driver.find_element(By.CSS_SELECTOR,"#username").clear()
        self.driver.find_element(By.CSS_SELECTOR,"#password").clear()
        time.sleep(1)
        if username != None:
           self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys(username)
        if password != None:
           self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
        time.sleep(1)
        AllDriver.screenshot()
        if  (username == None and password == None):
            used = self.driver.find_element(By.CSS_SELECTOR,"#username_help > div").text
            pasd = self.driver.find_element(By.CSS_SELECTOR,"#password_help > div").text
            assert  pasd == "密码是必填项!"
            assert  used == "用户名是必填项!"
        elif password == None:
            pasd = self.driver.find_element(By.CSS_SELECTOR,"#password_help > div").text
            assert  pasd == "密码是必填项!"
        else:
            self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div.ant-alert.ant-alert-error")
        self.driver.refresh()
    #4 不输入账号
    def LoginFulUTest(self,password):
        self.driver.find_element(By.CSS_SELECTOR, "#username").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#password").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button").click()
        AllDriver.screenshot()
        used = self.driver.find_element(By.CSS_SELECTOR, "#username_help > div").text
        assert used == "用户名是必填项!"
        self.driver.refresh()
    #5 不点击登录
    def LoginFulFTest(self,username,password):
        self.driver.find_element(By.CSS_SELECTOR, "#username").clear()
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.top___1C1Zi > div.header___5xZ3f > span")
        time.sleep(1)
        AllDriver.screenshot()

注册界面: 

 #注册成功
    def LoginSucRegister(self,name,username,password,repassword):
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()
        self.driver.find_element(By.CSS_SELECTOR,"#name").send_keys(name)
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR,"#rePassword").send_keys(repassword)

        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button > span").click()
        time.sleep(1)
        AllDriver.screenshot()
        text = self.driver.current_url
        assert text == "http://8.155.1.153:8081/user/login"
    #注册无姓名
    def LoginFNNRegister(self,username,password,repassword):
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()

        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR, "#rePassword").send_keys(repassword)

        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button > span").click()
        time.sleep(1)
        AllDriver.screenshot()
        text = self.driver.find_element(By.CSS_SELECTOR,"#name_help > div").text
        assert text == "用户名是必填项!"
        self.driver.back()
    #注册无账号
    def LoginFNURegister(self,name,password,repassword):
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()

        self.driver.find_element(By.CSS_SELECTOR, "#name").send_keys(name)
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR, "#rePassword").send_keys(repassword)

        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button > span").click()
        time.sleep(1)
        AllDriver.screenshot()
        text = self.driver.find_element(By.CSS_SELECTOR,"#username_help > div").text
        assert text == "登录账号不能为空"
        self.driver.back()
    #注册不输入密码
    def LoginFNPRegister(self,name,username,repassword):
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()

        self.driver.find_element(By.CSS_SELECTOR, "#name").send_keys(name)
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR, "#rePassword").send_keys(repassword)

        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button > span").click()
        time.sleep(1)
        AllDriver.screenshot()
        text = self.driver.find_element(By.CSS_SELECTOR,"#password_help > div").text
        assert text == "密码是必填项!"
        self.driver.back()
    #注册不输入确认密码
    def LoginFNRRegister(self,name,username,password):
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()

        self.driver.find_element(By.CSS_SELECTOR, "#name").send_keys(name)
        self.driver.find_element(By.CSS_SELECTOR, "#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys(password)

        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button > span").click()
        time.sleep(1)
        AllDriver.screenshot()
        text = self.driver.find_element(By.CSS_SELECTOR,"#rePassword_help > div").text
        assert text == "请再次输入密码"
        self.driver.back()
    #密码少于6位,用户存在,确认密码和输入密码不一致
    def LoginF3Register(self,name,username,password,repassword):
        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a").click()

        self.driver.find_element(By.CSS_SELECTOR,"#name").send_keys(name)
        self.driver.find_element(By.CSS_SELECTOR,"#username").send_keys(username)
        self.driver.find_element(By.CSS_SELECTOR,"#password").send_keys(password)
        self.driver.find_element(By.CSS_SELECTOR,"#rePassword").send_keys(repassword)

        self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > button > span").click()
        time.sleep(1)
        AllDriver.screenshot()
        if len(password) < 6 :
            text = self.driver.find_element(By.CSS_SELECTOR,"#password_help > div").text
            assert text == "密码至少6位"
        elif repassword != password :
            text = self.driver.find_element(By.CSS_SELECTOR,"#rePassword_help > div").text
            assert text == "两次密码不一致!"
        else :
            text = self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___1k5Ro > div.main___19HXK > div > form > div.ant-alert.ant-alert-error > div > div").text
            assert text == "账号已存在"
        self.driver.back()
#成功测试用例
login =Login()

# login.LoginSucTest("fhl666","fhl666")
# #1、都不输入用例
# login.LoginFulTest()
# #2、不输入密码
# login.LoginFulTest("fhl666")
# #3、正确的账号错误的密码
# login.LoginFulTest("fhl666","fhl661")
# #4、错误的账号正确的密码
# login.LoginFulTest("fhl661","fhl666")
# #5、错误的账号错误的密码
# login.LoginFulTest("fhl661","fhl661")
# #6、不输入账号
# login.LoginFulUTest("fhl666")
# #7、不点登录
# login.LoginFulFTest("fhl666","fhl661")
# #8、注册成功
# login.LoginSucRegister("666",time.time(),"666666","666666")
# #9、注册不输入姓名
# login.LoginFNNRegister(time.time(),"666666","666666")
# #10、注册不输入账号
# login.LoginFNURegister("666","666666","666666")
# #11、注册不输入密码
# login.LoginFNPRegister("666",time.time(),"666666")
# #12、注册不输入确认密码
# login.LoginFNRRegister("666",time.time(),"666666")
# #13、注册密码少于6位
# login.LoginF3Register("666",time.time(),"666","666")
# #14、确认和输入密码不一致
# login.LoginF3Register("666",time.time(),"666666","666661")
# #15、注册用户账号存在
# login.LoginF3Register("666","fhl666","666666","666666")
# login.Login_quit()

首页:

import time

from selenium.webdriver.common.by import By

from comom.Utils import AllDriver

#问卷首页
class List :
     url = "http://8.155.1.153:8081/home"
     driver = AllDriver.driver
     def __init__(self) :
         self.driver.get(self.url)

#成功登录的首页
     def SucLoginList(self):
         #首页
         self.driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > aside > div > div:nth-child(1) > ul > li.ant-menu-item.ant-menu-item-selected.ant-menu-item-only-child.ant-pro-base-menu-menu-item > span > div")
         #我的练习
         self.driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > aside > div > div:nth-child(1) > ul > li.ant-menu-item.ant-menu-item-selected.ant-menu-item-only-child.ant-pro-base-menu-menu-item > span")
         #题库中心
         self.driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > aside > div > div:nth-child(1) > ul > li:nth-child(4) > div > span > div > span.ant-pro-base-menu-item-text.ant-pro-base-menu-item-text-has-icon")
         #系统管理
         self.driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > aside > div > div:nth-child(1) > ul > li:nth-child(6) > div > span > div")

         AllDriver.screenshot()
     #登录失败的首页
     def FulLoginList(self):
      #用户名
         self.driver.find_element(By.CSS_SELECTOR,"#username")
      #密码
         self.driver.find_element(By.CSS_SELECTOR, "#password")
      #注册
         self.driver.find_element(By.CSS_SELECTOR,"#root > div > div.content___2zk1- > div.main___x4OjT > div > form > div:nth-child(4) > a" )
      #登录
         self.driver.find_element(By.CSS_SELECTOR, "#root > div > div.content___2zk1- > div.main___x4OjT > div > form > button")

         AllDriver.screenshot()
     def ExitLogin(self):
         self.driver.find_element(By.CSS_SELECTOR,"#sk-layout > div > div > section > div.ant-pro-layout-container > header.ant-layout-header.ant-pro-layout-header.ant-pro-layout-header-fixed-header.ant-pro-layout-header-mix.ant-pro-layout-header-fixed-header-action.ant-pro-layout-header-header > div > div.ant-pro-global-header-right-content > div > div > div > div:nth-child(2)").click()
         self.driver.find_element(By.CSS_SELECTOR,"body > div:nth-child(7) > div > div > ul > li:nth-child(4) > span.ant-dropdown-menu-title-content").click()
list = List()






创建问卷:

import time

from selenium.webdriver.common.by import By

from comom.Utils import AllDriver

#调查问卷测试
class Survey:
    driver = AllDriver.driver
    url = "http://8.155.1.153:8081/survey/new?mode=survey"
    def __init__(self):
        self.driver.get(self.url)

    #成功创造问卷调查
    def SurveyContent(self):
        #标题
        self.driver.find_element(By.CSS_SELECTOR,"#editorContent > div > div > div.header > div.header-content > div.sc-aXZVg.LyTMt.title.quill-container.not-focus > div > pre > div.ql-editor > p")
        #预览
        self.driver.find_element(By.CSS_SELECTOR,"#editor > div.survey-main-panel > div.survey-main-panel-toolbar > div:nth-child(2) > div > button:nth-child(3) > span")
        #保存
        self.driver.find_element(By.CSS_SELECTOR,"#editor > div.survey-main-panel > div.survey-main-panel-toolbar > div:nth-child(2) > div > button.ant-btn.ant-btn-primary.ant-btn-sm > span")
        #提取
        self.driver.find_element(By.CSS_SELECTOR,"#editorContent > div > div > div.footer > div.title > div > div > pre > div.ql-editor > p")
        #截图
        AllDriver.screenshot()
    def SucCreateSurvey(self):
        #输入标题
        text = time.time()
        self.driver.find_element(By.CSS_SELECTOR,"#editorContent > div > div > div.header > div.header-content > div.sc-aXZVg.LyTMt.title.quill-container.not-focus > div > pre > div.ql-editor > p").send_keys(text)
        #添加类型
        # self.driver.find_element(By.CSS_SELECTOR,"#rc-tabs-4-panel-1 > div > div > dl:nth-child(3) > div > div:nth-child(1) > dd > div").click()
        #点击保存
        self.driver.find_element(By.CSS_SELECTOR,"#editor > div.survey-main-panel > div.survey-main-panel-toolbar > div:nth-child(2) > div > button.ant-btn.ant-btn-primary.ant-btn-sm > span").click()
        AllDriver.screenshot()




8、项目测试bug简述

9、测试结论

本次测试通过,测试耗时2天,测试方法包含:性能测试,界面测试,自动化测试

在功能方面,核心功能均能正常实现,如登录功能,注册功能,创建问卷功能,操作流程符合用户预期,但部分细节功能存在小瑕疵,例如偶尔会有卡顿,不过不影响整体使用。

自动化测试中,测试了,登录,注册,首页,问卷详情页,其中功能都正常通过

总体而言,问卷调查基本达到预期目标,具备上线条件。但针对测试中发现的问题,建议开发团队尽快修复优化,尤其是功能细节方面,以提升用户体验,确保产品稳定、高效运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值