作者:Arnold
链接:
来源:知乎
很多人都拿到了不同的学习软件测试学习路线图,但是却不知道其实软件测试更多的需要实战。
谈到实战,我的发言比较具有权威性,很简单,实战的结果以什么维度去考虑,是不是需要对应的输出件。
阿里的名言:没有结果的努力全是瞎忙!!!
那么我们来分析下,软件测试的过程中,或者学习的过程中都需要输出哪些内容? 第一阶段,熟悉软件测试中的各个软件测试术语的相关概念。
第二阶段,输出对应的软件测试方法及分类
第三阶段,软件测试的相关模型。
第四阶段,输出软件测试生命周期
第五阶段,需求评审,企业的第一个会议
第六个阶段,测试用例的输出
第七个阶段:Linux相关命令
第八个阶段:数据库的相关练习 一、where子句练习
1.查找满足价格大于等于9的所有信息;
2.查找满足product_id在1002和1003之间的;
3.查找user_id在1、3、5这三个数内的信息;
4.查找订单状态是已支付的信息;
5.查找用户名类似于li开头的信息;
6.查找用户名中第二个字母是h的信息;
7.查找用户名中第二个字母不是h的信息;
8.查找用户名中最后一个字母不是以i结尾的信息;
9.查找价格大于8,且订单状态是已支付的信息;
10.查找用户表中user_nick为null的信息;
11.查找用户表中user_nick不为null的信息。
二、聚合函数练习
1.查找订单表中最大的价格;查找订单表中最小的价格;
2.查找订单表中user_id=2的最小价格;
3.分别列出订单表中user_id=2的最小价格和最大价格;
4.分别列出订单表中user_id=2的最小价格和最大价格,并把最小价格的展示结果的列名改为“min_price”;
5.求订单表的价格的平均值,求订单表中user_id=2的价格的平均值;
6.分别列出订单表中user_id=2的价格的平均值、最小值、最大值;
7.求订单表中user_id=1的价格的总和;
8.求订单表中user_id=1或者user_id=3的价格总和;
第九个阶段:探索式测试
第十阶段:Python相关实战 1.提醒用户输入自己的英文名字,然后保存到字典中(以name为key),将用户输入的英文名字翻转,继续保存到刚才的字典中(以new_name为key)将字典中用户的正常的英文姓名赋值给变量real_name,告知客户“您的英文名字是:” + 变量,“您的英文名字翻转是:” + 字典里获取;
dict_user={} real_name=input('请输入你的英文名字:') dict_user['name']=real_name dict_user['new_name']=real_name[::-1] print("你的英文名字是:"+real_name,"你的英文名字翻转是:"+dict_user['new_name'])
2.提醒用户依次输入数学、语文、英语、综合四门的成绩,按照输入的成绩排序,告诉用户“您的最高的一门成绩是:”xx (不用告诉用户是哪一科) 1)方法一:
score=[float(input('请输入你的数学成绩:')),float(input('请输入你的语文成绩:')),float(input('请输入你的英文成绩:')),float(input('请输入你的综合成绩:'))] sorted_score=sorted(score,reverse=True) print('你的最高一门成绩是:%d'%sorted_score[0])
2)方法二:
subjects=['数学','语文','英语','综合'] score=[] for subject in(subjects): single_score=float(input('请输入你的%s成绩:' %subject)) while single_score>100 or single_score<0: single_score=float(input('输入错误,请重新输入你的%s成绩:' %subject)) score.append(single_score) sorted_score=sorted(score,reverse=True) print('你的最高一门成绩是:%d' %sorted_score[0])
3)方法三:
subjects=['数学','语文','英语','综合'] dict_score={} for subject in(subjects): score=(float(input('请输入你的%s成绩:' %subject))) while score>100 or score<0: score=float(input('输入有误,请重新输入你的%s成绩:'%subject)) dict_score['%s' %subject]=score max_score=max(zip(dict_score.values())) print('你最高一门的成绩是:%s' %max_score)
3.使用input让用户依次输入两个数字, 计算两个数字的和并显示。
a=float(input('请输入第一个数字:')) b=float(input('请输入第二个数字:')) print('两个数字之和是:%s' %(a+b))
1.用python输出九九乘法表
for i in range(1,10): for j in range(1,i+1): print('%dx%d=%d ' %(j,i,j*i),end='') print()
2.猜数字游戏
代码中生成一个随机整数,然后用户输入数字后,程序提示用户的输入是高了还是低了,直到用户猜中这个数字, 游戏结束。
import random a=random.randint(0,100) b=int(input('请输入你猜的数字:')) while b!=a: if b>a: b=int(input('你猜高了,请重新猜这个数字:')) else: b=int(input('你猜低了,请重新猜这个数字:')) else: print('你猜对了,游戏结束')
第十二阶段:自动化测试
from selenium import webdriver #从selenium导入webdriver这个类 import time
driver = webdriver.Chrome() #初始化一个driver对象
driver.get( ' http://101.133.169.100/yuns/')
time.sleep(5) #xpath绝对路径 #登录
driver.find_element_by_xpath( '/html/body/div[1]/div/div[1]/a[1]').click() #免费注册
driver.find_element_by_xpath( '/html/body/div/div/div[1]/a[2]').click() #全场免运费
driver.find_element_by_xpath( '/html/body/div/div/div[2]/span[1]').click() #优惠券
driver.find_element_by_xpath( '/html/body/div[3]/div/div/a[3]').click() #我的订单搜索框
driver.find_element_by_xpath( '/html/body/div/div/div/form/div/div/input[1]').send_keys( '男鞋') #xpath相对路径 #登录
driver.find_element_by_xpath( "//div[@class='login']/a[1]").click()
driver.find_element_by_xpath( "//*[@class='login']/a[1]").click() #更好留给你
driver.find_element_by_xpath( "//div[@class='schhot']/a[6]").click()
driver.find_element_by_xpath( "//a[contains(@title,'更好')]").click()
driver.find_element_by_xpath( "//*[@class='schhot']").click()
driver.find_element_by_xpath( "//a[@title='更好留给你']").click() #我的订单搜索框
driver.find_element_by_xpath( "//div[@class='sch']/input[1]").send_keys( '男鞋')
driver.find_element_by_xpath( "//*[@class='sch']/input[1]").send_keys( '男鞋')
driver.find_element_by_xpath( "//input[@class='text' and @type='text']").send_keys( '男鞋')
driver.find_element_by_xpath( "//input[contains(@name,'key')]").send_keys( '男鞋') #服务时间
driver.find_element_by_xpath( "//div[@class='contact_us']/p[3]").click()
driver.find_element_by_xpath( "//*[@class='contact_us']/p[3]").click()
driver.find_element_by_xpath( "//p[@class='service']").click()
driver.find_element_by_xpath( "//p[contains(@class,'serv')]").click() #个人头像
driver.find_element_by_xpath( "//div[@class='img']/img").click()
driver.find_element_by_xpath( "//*[@class='img']/img").click()
driver.find_element_by_xpath( "//img[@width='80']").click()
driver.find_element_by_xpath( "//img[contains(@src,'/yuns/')]").click() #css定位 #首页输入框
driver.find_element_by_css_selector( "html body div div div div form input:nth-child(1)").send_keys( '衬衫') #购物车
driver.find_element_by_css_selector( "div.small_cart_name>span").click() #首页输入框
driver.find_element_by_css_selector( "input.but1").send_keys( '衬衫') #我的订单搜索按钮
driver.find_element_by_css_selector( "input[type='submit']").click() #在线支付
driver.find_element_by_css_selector( "div.contact_help>dl:nth-child(4)>dd:nth-child(2)>a").click() #我的购物车数字图标
driver.find_element_by_css_selector( "i#cart_num").click() #会员中心
driver.find_element_by_css_selector( 'div[class="con"]>p>a:nth-child(1)').click() #整点秒杀按钮
driver.find_element_by_css_selector( 'a[target="_blank"][href="http://101.133.169.100/yuns/index.php/goods/seckill"]').click() 获取验证信息 from selenium import webdriver #从selenium导入webdriver这个类 import time
driver = webdriver.Chrome() #初始化一个driver对象
driver.get( ' http://101.133.169.100/yuns/')
time.sleep(5)
title = driver.title #获取页面title信息
print(title)
driver.find_element_by_link_text( '口红').click()
url = driver.current_url #点击某一按钮之后,获取当前页面信息的url
print(url) 控制浏览器
from selenium import webdriver #从selenium导入webdriver这个类
import time
driver = webdriver.Chrome() #初始化一个driver对象
driver.get(' http:// 101.133.169.100/yuns/ ')
time.sleep(5)
driver.find_element_by_link_text('口红').click()
driver.refresh() #浏览器刷新
time.sleep(2)
driver.back() #浏览器回退
time.sleep(2)
driver.forward() #浏览器前进
time.sleep() 设置浏览器尺寸
from selenium import webdriver #从selenium导入webdriver这个类 import time driver = webdriver.Chrome() #初始化一个driver对象 driver.get(' http:// 101.133.169.100/yuns/ ') time.sleep(5) driver.maximize_window() #浏览器窗口最大化 time.sleep(2) driver.set_window_size(1200,800) #设置浏览器的高和宽 time.sleep(2) 动作方法
from selenium import webdriver #从selenium导入webdriver这个类 import time driver = webdriver.Chrome() #初始化一个driver对象 driver.get(' http:// 101.133.169.100/yuns/ ') time.sleep(5) driver.find_element_by_name('key').send_keys('口红') #输入内容,只针对输入框 time.sleep(2) driver.find_element_by_name('key').clear() #清空输入框的内容 time.sleep(2) driver.find_element_by_id('cart_num').click() #点击控件 窗口切换
from selenium import webdriver #从selenium导入webdriver这个类 import time driver = webdriver.Chrome() #初始化一个driver对象 driver.get(' http://www. baidu.com ') time.sleep(5) driver.find_element_by_class_name('s_ipt').send_keys('腾讯视频') driver.find_element_by_id('su').click() print(driver.window_handles) #获取当前窗口所有信息 driver.find_element_by_xpath("//div[@id='1']/h3/a[1]").click() print(driver.window_handles) print(driver.current_window_handle)# 获取当前焦点所在的窗体 driver.switch_to.window(driver.window_handles[1]) #切换窗体的焦点 driver.close() #关闭当前焦点所在的窗体 driver.quit() #关闭所有窗体
自动化测试报告
第十三阶段:移动端自动化
第十四阶段:接口测试
性能测试
第十五阶段:接口自动化测试