谈谈工做中的那些事,自动化、性能、接口测试!

今天能够说是一个特殊的日子,上午参加了集团测试小伙伴们的述职让本身存在颇多感触,还得弄个ppt几天后和他们一块儿分享。无奈~~~~说说那些事。
        回想刚毕业的本身懵懵懂懂,领导问会不会性能、会不会自动化,我立刻回答的确定是:会!最后不管好差都交差了,不过回想起来再去看看那时候本身弄的东西时显得拿不出手。同感在今天的述职中也碰见了不少小伙伴都说到了这样的事情让我倍感亚历山大,不过内心在想还好几个大牛没来否则今天这个就坑了。碰见的基本以下:工做了近两年的A小伙伴上去说我这几个月作了什么收获什么,在作了什么时就说我对XXX系统进行了性能测试,在查看了各项数据后对系统进行评估是合格的。对xxx功能模块进行了自动化测试,对每次的迭代更新后都测试了减小了工做量。因而乎展现了他部分的性能报告、自动化脚本等,完了以后领导让作点评,这让我不知从何提及,在另一个同事的怂恿下说了点点。结束后上去了B\C......近10位小伙伴,可是在整个过程当中都有不少相同的问题,这其实和当初的本身同样,校招略坑!
        简单说说几个方面吧,自动化测试(不管是web仍是以移动端)不是你们常常接触的随便找一个软件而后录制一下最后改吧改吧均可以了的,你那样弄出来的自动化脚本是否拥有可重用性?是增长了工做量仍是减小了工做量?是否是只是以为本身这样作了有高大上的感受?其实这些作的都是无用功。对自动化有必定的了解的人都知道所谓的自动化都是基于元素来的,若是在一个系统不稳定的、迭代块的状况下作自动化也是徒劳的。若是说本身连功能都作很差也就别想着作自动化了,若是本身连功能的测试用力都没法写好那么也别想写好自动化的测试用例了。前段时间和小伙伴分享的时候他们惊奇的说:自动化测试还要写测试用力?当时我不知道怎么来回答,一脸茫然。很早的时候你们都再说用例的可执行性,别人写的用例你看不懂你确定会骂人的,那么自动化测试同样,你写的自动化测试用例别人看不懂就无法写脚本了。换而言之当计算机看不懂咱们写的代码时那么他不会骂人只是不执行报错而已。因此自动化测试用例是自动化测试的基础(固然前提是系统稳定什么的)。好比一个登陆的测试用例怎么写呢?小伙伴们都是:一、在用户栏输入xxxx,二、在密码栏输入xxxx,三、点击登陆按钮,登陆成功。不少小伙伴都是这样,其实不对。相对标准的用例应该是这样:
一、打开Firefox()浏览器
二、在打开的Firefox()浏览器地址栏输入" http://www.xxxxxx.com"
三、在id为username的用户栏输入正确的用户账号:xxxxxxx
四、在id为password的密码栏输入正确的密码:xxxxxx
五、点击id为login的“登陆”按钮
六、用户登陆成功,跳转到xxxxx页面
有的小朋友说这样太麻烦了,其实这还不算标准的,其实咱们还有不少的东西没有写出来。好比你是否是应该在第6条后面再加一条断言呢?登陆成功没呢?登陆后跳转的页面对不呢?登陆后的用户信息对吗?这些你都要考虑进去,若是出现串cookie的状况因此这些都是必要的!最后小伙伴们都问了那咱们是否是这样将用例翻译成脚本就好了呢?答案确定是否认呢?你以为这样的脚本有用吗?我以为没有!由于这脚本没有可用性,没有可维护性。why?若是我要换一个账号登陆你怎么办?不断更改?若是元素id变了呢?这有复用性吗?分享当时小伙伴们怒了,那这自动化根本就没用还麻烦。答案实际上是否认的,只是咱们方式不对而已。按照刚才的翻译出来是这样。
from selenium import webdriver
#一、打开Firefox()浏览器
dr = webdriver.Firefox()
#二、在打开的Firefox()浏览器地址栏输入" http://www.xxxxxx.com"
dr.get(' http://www.xxxxx.cm')
#三、在id为username的用户栏输入正确的用户账号:xxxxxxx
dr.find_element_by_id("username").send_keys("xxxxxx")
#四、在id为password的密码栏输入正确的密码:xxxxxx
dr.find_element_by_id("password").send_keys("xxxxxx")
#五、点击id为login的“登陆”按钮
dr.find_element_by_id('login').click()
#六、用户登陆成功,跳转到xxxxx页面
assert"xxxx" in dr.title    #'xxxx'是否在title里面   也能够添加其余的断言

草草的写了一下最后的一个登陆测试脚本 应该是这样的:
from selenium import webdriver
import unittest
class TestLogin(unittest.TestCase):
Login_url = ' http://www.xxxx.com'
dr = None
def setUp(self):
print 'test start'
self.dr = webdriver.Firefox()
 
def tearDown(self):
self.dr.quit()
 
def test_Login(self):
username = 'sssss'
password = 'xxxxx'  #能够调用外面的
self.dr.get(self.Login_url)
self.login(username,password)
t = self.dr.find_element_by_id('login')  #查找元素为login的东西 登陆后的
self.assertTrue(username in t.text)   #断言
pass
def login(self,user,pwd):
#三、在id为username的用户栏输入正确的用户账号:xxxxxxx
self.dr.find_element_by_id("username").send_keys(user)
#四、在id为password的密码栏输入正确的密码:xxxxxx
self.dr.find_element_by_id("password").send_keys(pwd)
#五、点击id为login的“登陆”按钮
self.dr.find_element_by_id('login').click()
if __name__ == '__main__':
unittest.main() 
一个登陆的自动化测试用例就是这样的(完成度95%)。         性能测试须要的东西不少暂时先提一下:开发语言(方便些性能脚本)、中间件知识、服务器知识、数据库知识、网络知识这些差很少都须要会。因此这不是简单活,后面简单说下,睡觉了! 
相关文章
相关标签/搜索