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

今天可以说是一个特殊的日子,上午参加了集团测试小伙伴们的述职让自己存在颇多感触,还得弄个ppt几天后和他们一起分享。无奈~~~~说说那些事。
        回想刚毕业的自己懵懵懂懂,领导问会不会性能、会不会自动化,我马上回答的肯定是:会!最后无论好差都交差了,不过回想起来再去看看那时候自己弄的东西时显得拿不出手。同感在今天的述职中也遇见了很多小伙伴都说到了这样的事情让我倍感亚历山大,不过心里在想还好几个大牛没来不然今天这个就坑了。遇见的基本如下:工作了近两年的A小伙伴上去说我这几个月做了什么收获什么,在做了什么时就说我对XXX系统进行了性能测试,在查看了各项数据后对系统进行评估是合格的。对xxx功能模块进行了自动化测试,对每次的迭代更新后都测试了减少了工作量。于是乎展示了他部分的性能报告、自动化脚本等,完了之后领导让做点评,这让我不知从何说起,在另外一个同事的怂恿下说了点点。结束后上去了B\C......近10位小伙伴,但是在整个过程中都有很多相同的问题,这其实和当初的自己一样,校招略坑!
        简单说说几个方面吧,自动化测试(无论是web还是以移动端)不是大家经常接触的随便找一个软件然后录制一下最后改吧改吧都可以了的,你那样弄出来的自动化脚本是否拥有可重用性?是增加了工作量还是减少了工作量?是不是只是觉得自己这样做了有高大上的感觉?其实这些做的都是无用功。对自动化有一定的了解的人都知道所谓的自动化都是基于元素来的,如果在一个系统不稳定的、迭代块的情况下做自动化也是徒劳的。如果说自己连功能都做不好也就别想着做自动化了,如果自己连功能的测试用力都无法写好那么也别想写好自动化的测试用例了。前段时间和小伙伴分享的时候他们惊奇的说:自动化测试还要写测试用力?当时我不知道怎么来回答,一脸茫然。很早的时候大家都再说用例的可执行性,别人写的用例你看不懂你肯定会骂人的,那么自动化测试一样,你写的自动化测试用例别人看不懂就没法写脚本了。换而言之当计算机看不懂我们写的代码时那么他不会骂人只是不执行报错而已。所以自动化测试用例是自动化测试的基础(当然前提是系统稳定什么的)。比如一个登录的测试用例怎么写呢?小伙伴们都是:1、在用户栏输入xxxx,2、在密码栏输入xxxx,3、点击登录按钮,登录成功。很多小伙伴都是这样,其实不对。相对标准的用例应该是这样:
1、打开Firefox()浏览器

2、在打开的Firefox()浏览器地址栏输入"http://www.xxxxxx.com"

3、在id为username的用户栏输入正确的用户帐号:xxxxxxx

4、在id为password的密码栏输入正确的密码:xxxxxx

5、点击id为login的“登录”按钮

6、用户登录成功,跳转到xxxxx页面
有的小朋友说这样太麻烦了,其实这还不算标准的,其实我们还有很多的东西没有写出来。比如你是不是应该在第6条后面再加一条断言呢?登录成功没呢?登录后跳转的页面对不呢?登录后的用户信息对吗?这些你都要考虑进去,如果出现串cookie的情况所以这些都是必要的!最后小伙伴们都问了那我们是不是这样将用例翻译成脚本就行了呢?答案肯定是否定呢?你觉得这样的脚本有用吗?我觉得没有!因为这脚本没有可用性,没有可维护性。why?如果我要换一个帐号登录你怎么办?不断更改?如果元素id变了呢?这有复用性吗?分享当时小伙伴们怒了,那这自动化根本就没用还麻烦。答案其实是否定的,只是我们方式不对而已。按照刚才的翻译出来是这样。

from selenium import webdriver

#1、打开Firefox()浏览器

dr = webdriver.Firefox()

#2、在打开的Firefox()浏览器地址栏输入"http://www.xxxxxx.com"

dr.get(‘http://www.xxxxx.cm‘)

#3、在id为username的用户栏输入正确的用户帐号:xxxxxxx

dr.find_element_by_id("username").send_keys("xxxxxx")

#4、在id为password的密码栏输入正确的密码:xxxxxx

dr.find_element_by_id("password").send_keys("xxxxxx")

#5、点击id为login的“登录”按钮

dr.find_element_by_id(‘login‘).click()

#6、用户登录成功,跳转到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):

#3、在id为username的用户栏输入正确的用户帐号:xxxxxxx

self.dr.find_element_by_id("username").send_keys(user)

#4、在id为password的密码栏输入正确的密码:xxxxxx

self.dr.find_element_by_id("password").send_keys(pwd)

#5、点击id为login的“登录”按钮

self.dr.find_element_by_id(‘login‘).click()

if __name__ == ‘__main__‘:

unittest.main()

一个登录的自动化测试用例就是这样的(完成度95%)。

性能测试需要的东西很多暂时先提一下:开发语言(方便些性能脚本)、中间件知识、服务器知识、数据库知识、网络知识这些差不多都需要会。所以这不是简单活,后面简单说下,睡觉了!

时间: 2024-10-14 03:16:58

谈谈工作中的那些事,自动化、性能、接口测试!的相关文章

工作中的那些事(1)

1.toastr http://www.jq22.com/jquery-info476 2.jquery1.11.1 checkbox前端js代码: //全选 function CheckAll(e) { if ($(e).attr("checked") == "checked") { $(e).removeAttr("checked"); $(":checkbox[name='cbxStudent']").removeAtt

在网络优化工作中,如何进行场景的自动化识别

在无线网络优化/规划工作中,经常需要对站点进行场景化的分析,比如参数设置.通信保障等.而传统的方式主要是由现场人员进行人工上报,在实际工作中数据上报的及时性.准确性都或多或少存在问题.本文主要介绍借助IT手段,实现站点覆盖场景的自动化识别. 一.原材料 MapInfo软件.场景区域图层(如高速公路.商业区等,这里以高速公路为例) 二.操作说明 1.根据现有的高速公路图层生成对应的缓冲区图层,这里的缓冲距离取1km: 2.取现网基站点,生成基站点的图层: 3.进行空间运算,识别出结果:

谈谈我从工作中理解的CDN

一.CDN定义 CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接.负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上.其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的

给大家分享12个或许能在实际工作中帮助你解决一些问题的JavaScript的小技巧

使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用!!variable做检测,只要变量的值为:0.null." ".undefined或者NaN都将返回的是false,反之返回的是true.比如下面的示例: 01 function Account(cash) { 02 this.cash = cash; 03 this.hasMoney

工作中的程序员如何进阶

前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样. 一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节. 一定要学会思考,思考为什么要这样,

论工作中的恶心事

世界上两种人,男人和女人: 而这两种人又分为,需要工作的和不需要工作的: 而需要工作的这种人群里,又分为认真工作的和应付工作的,这里的认真可以理解为责任心.我从不认为会有无缘无故的责任心,一定都是有某种驱动的,而这里的责任心是受眼前生活的苟且驱动的.这种苟且的在意程度又分为两种,显而易见,一种是在意眼前的苟且,一种是不在意眼前的苟且.那么在意眼前的苟且又分为两种,一种是官僚的,一种是普通的. 当然,以上责任心的推论如果都不成立,不外乎有一种无论做什么,为保证自己响当当的名誉,对啥事都有责任心.这

软件测试工程师工作中常用的Linux命令

Linux系统有着众多的优点,比方开源.非商业版本免费.多任务多用户操作,因而Linux系统在非桌面范畴占有压倒性的市场份额.关于互联网技术工作者来说,控制常用的Linux命令也是一门必修课.下面罗列一些笔者在工作中常用的Linux命令. cd 切换目录 cd .. 返回上一层目录 cd . 进入当前目录 cd - 返回前一次的目录,即上一次的目录不是上一层目录 ls 查看文件与目录 用法: ls [参数][文件] 参数: ls –l 显示文件的权限和属性 ls –a 列出所有的文件,包含隐藏文

你所不知道的html5与html中的那些事(二)

文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢? 本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的理念与想法,html5的新标签的用意与具体开发中场景应用,html5与css3的感情经历(用法搭配),包括html5的父亲html的一些

你所不知道的html5与html中的那些事(一)

分类: Web开发 文章简介: 关于html5相信大家早已经耳熟能详,但是他真正的意义在具体的开发中会有什么作用呢?相对于html,他又有怎样的新的定义与新理念在里面呢?为什么一些专家认为html5完全完成后,所有的工作都可以达到真正的云方式呢?这一系列的问题你是否已经想明白了呢? 本系列文章将为您一一解答你所不知道的关于html5与html中的那些事;具体会包括如:html5新的理念与想法,html5的新标签的用意与具体开发中场景应用,html5与css3的感情经历(用法搭配),包括html5