登录界面的脚本测试
① 自动化测试脚本需要经过测试验证吗
1、测试类型可以包括:白盒测试、黑盒测试(功能测试、性能测试)等。2、不同的测试类型使用的自动化测试方法不同,白盒测试主要针对代码级的单元测试、黑盒测试主要面对功能级和系统级的验证测试。3、自动化测试,针对白盒测试,一般需要有一定的编程基础,即能够基于功能代码写测试代码,常用的单元测试方面的自动化测试工具很多,上网一搜全是。4、自动化测试,针对功能测试,有几种情况,基于CLI、API和GUI的测试;基于CLI、API的测试,即应用脚本技术向设备模拟发送CLI命令或者API请求,以达到控制设备的效果。基于GUI功能测试,即应用传统的界面自动化测试工具(例如:RFT、QTP等)控制界面控件操作的方法,以达到模拟用户操作,这几种方式都需要你有一定的编码基础;基于CLI、API的需要你懂脚本技术(例如:tcl、python、ruby等),RFT需要你懂java或者.net、QTP需要VB等。
② 怎么用python对qq登录界面写测试脚本
1. 用Python封装被测试接口,对于HTTP接口我们通常会采用 GET和POST 2种调用方式去访问,所以必须把这2种方式都封装进去
# -*- coding:gb2312 -*-
import urllib2,urllib
'''
函数说明:url 特殊字符编码转换
作者:xiaonan
输入参数:待转换的字符串数据
输出参数:转换完成后的字符串数据
'''
def urlcode(data):
return urllib2.quote(str(data))
'''
函数说明:获取用户信息的API接口
作者:xiaonan
输入参数:用户名(uname),HTTP接口调用方式(GET或者POST)
输出参数:HTTP接口调用返回数据
'''
def GetUserInfo(uname,method):
if method == 'GET':
url = 'http://ip:port/interface/GetUserInfo.php?uname='+urlcode(uname)
result = urllib2.urlopen(url).read()
return result
if method == 'POST':
url = 'http://ip:port/interface/GetUserInfo.php'
values = {'uname' : uname}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
result = response.read()
return result
2. 编写、组织测试脚本, 准备测试数据
根据Testcase的具体业务逻辑用事先准备好的测试数据去调用封装好的API接口,验证实际返回结果是否与预期返回结果一致.
测试数据可以以各种形式存放,如Excel数据表:
TestCaseName uname method Expected Result
TestCase1 aaaa GET ....
TestCase2 aaaa POST ....
TestCase3 bbbb GET ....
... ... ... ....
# -*- coding:gb2312 -*-
import xlrd
'''
函数说明: Testcase 脚本
作者:xiaonan
输入参数:测试数据,API接口
输出参数:测试日志,测试报告
'''
def GetUser():
bk = xlrd.open_workbook(excel文件名称) # 打开excel文件
sh = bk.sheet_by_name(excel表名)# 打开excel表
nrows = sh.nrows # 获取总行数
for i in range(1,nrows):
TestCase = sh.cell_value(i,0)
uname = sh.cell_value(i,1)
method = sh.cell_value(i,2)
EX_Result=sh.cell_value(i,3)
WriterLog('Testcase Name:'+TestCase+'TestData: uname = '+uname+' ,method = '+method+' ,EX_Result = ' + ,EX_Result) # 写测试日志
AC_result = GetUserInfo(uname,method) # 调用API接口
WriterLog('AC_result = ' + AC_result) # 写测试日志
if EX_Result == AC_result: #实际结果与预期结果对比
WriterLog(...) #写测试日志
WriterReport(...)#写测试报告
else
WriterLog(...)#写测试日志
WriterReport(...)#写测试报告
3. 组织测试套,用驱动文件去调用执行所有测试套件,完成相关测试,并生成测试日志及测试报告.
# -*- coding:gb2312 -*-
'''
函数说明: Testsuit Driver驱动脚本
作者:xiaonan
输入参数:TestCase 脚本
输出参数:测试日志,测试报告
'''
if __name__ == '__main__':
...
WriterLog() #写测试日志
GetUser() # TestCase 脚本
...
...
Report(....) # 统计汇总所有测试报告数据,以文件或页面形式呈现.
4. 执行测试脚本,分析测试结果. 根据测试报告,如果有Bug则提交.
③ 软件测试题目,两个登录界面的测试。说出界面的优缺点和测试思路
第一个接口比较好,功能齐全,注册、忘记密码、登陆方式都有。用起来肯定最方便。
但是如果要用户最直观的想直来你这个软体的 账号 是什么,应该在账号栏位显示你们账号的格式,鼠标点进去的时候,这样的格式自动消失,会更人性化一点;
第二个画面,看直来像是网页上操作的,用户名+密码输入框做的像个按钮,比较突出,给人第一感觉 就是不太好选择&操作。再看登陆按钮,虽然有倒影设计,但立体感不强,视觉冲击力不强,看起来就像个图片在那里。
再来就是找回密码、记住密码、注册新账号等功能都没了了...操作不方便。
所以,一般用户会选第一个。
④ 打开电脑总是弹出“当前页面的脚本发生错误。代码0”
弹出“当前页面的脚本发生错误,代码0”,可能关键系统组件出现异常导致,解决方法如下。
1、首先打开IIE浏览器,点击上面的工具,依次点“Internet 选项”。
⑤ 假如给你一个登陆界面,有能够记住用户名密码复选框的,你怎么设计测试用例
1、测试密码、用户名是否输入正常;
2、测试密码、用户名输入异常时;
3、测试点下“记住”时是否记住密码与用户名,假如只记下密码或者用户名又将怎样;
4、测试点下“不记住”又记下没,假如记下又怎样;
5、测试点下“记住”,当有多个用户名需要记下时是否正常;
6、测试如何删除已记下的用户名和密码,删除是否真正删除,删除引起其他异常是什么;
……
⑥ 求自动化测试用户登录页面的脚本和case
登录页面不用用例,你只要能登录进去就可以了,你要注意自动化测试和手工测试有所不同不是每条手工用例都要抓换成自动化用例,登录只是个流程,不重要
⑦ 登录界面包含以下信息,在编写测试用例的时候需要考虑哪些情况呢用户名、密码、验证码、语言切换
编写测试用例,要看需求。一般登录页面要检查的测试点如下。
1用户名为空
2用户名长度过短(长度小于需求)
3用户名长度过长(长度大于需求)
4用户名长度边界值测试
5用户名字母、数字、汉字、特殊字符的输入。
6密码为空
7密码长度过短(长度小于需求)
8密码长度过长(长度大于需求)
9密码长度边界值测试
10密码 字母、数字、汉字、特殊字符的输入。
11重复密码的(6-11)的测试点
12重复密码长度小于密码长度
13重复密码长度大于密码长度
14重复密码长度等于密码长度,但是密码内容不同
15密码与重复密码长度相同
16输入正确验证码
17输入错误验证码
以上测试点仅供参考。具体按需求文档规定。测试用例根据测试点编写
⑧ 如何用java模拟网页登入提交
我不得不使用好几个系统,都是B/S结构的,每次登录都需要输入用户名和密码,觉得非常麻烦,考虑到其他同事也会有这样的需求,不妨就写个自动登录的程序吧。之前,也考虑过使用单点登录,几经尝试之后还是放弃了。
我习惯使用Java,本能地开始寻找Java的解决方法,在Google中输入“Java自动登录”、“Java网页模拟登录”、“Java Post 登录”,结果倒是不少,内容也差不多,我尝试很多次终究也没有达到我预期的目标。后来,我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行。但这些代码确实管用。
我们先分析一下代码,
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>
String surl = "http://192.168.0.1:8888/oa/login.jsp";
URL url = new URL(surl);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());
String str = "username=yourname&password=123456";
out.write(str);
out.flush();
out.close();
到这里,如果在C/S结构中,且参数正确,程序能够成功登录到这个oa系统,要看到结果,你可以通过下面的代码将系统服务器返回的结果System.out.println()出来。
String sling = "";
String scontent = "";
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
while ((sling = in.readLine()) != null)
scontent += in + "\r\n";
System.out.println(scontent);
在C/S结构下,可以到得到控制台输出了返回值,从返回内容里可以看出程序已经成功登录,但要是把这个网址浏览器打开,还是得重新登录,问题没有得到根本解决。如果只是恶意注册,到这里应该就达到目的了。
看样子C/S结构下不容易实现网页程序自动登录,除非你在C/S程序中内嵌一个浏览器,直接在这个浏览器中自动访问系统,应该没有别的方法,主要问题在于我们没有办法共享Session。
为了便于共享Session,我们只能在浏览器中实现网页自动登录,通过上面的代码在jsp页面中测试,达不到预期目标。
网页自动登录,就是希望程序自动填充用户名和密码,然后以Post方式提交给登录页面的Form所指向的action页面或方法。我将系统的登录页面的源代码保存成一个网页,然后在username和password文本框中设置默认值,然后通过这网页登录系统,测试后,发现可行。接下来,你可能已经想到了解决方法。
我们可以通过url.openConnection()建立连接,将返回的scontent打印出来,然后接着打印以下代码:
out.println("<script type="text/javascript">\r\n");
out.println("document.getElementsByName("username")[0].value=yourname;\r\n");
out.println("document.getElementsByName("password")[0].value=123456;\r\n");
out.println("document.forms[0].submit();\r\n");
out.println("</script>\r\n");
原理很简单,通过login.jsp将登录页面的全部源代码写在当前页面,然后使用javascript脚本将用户名和密码的值填充上,最后提交表单。这样中,终于实现了自动登录的目标。现在我通过一个特殊的网址,例如http://192.168.0.1/login.jsp?url=,就可以自动访问这个oa了。
你可能注意到参数url,他的值是经过加密的,内容是用户名和密码。当然,你也可以加上有效期,即在有效期内这个链接才是有效的,才可以实现自动登录。
⑨ 假如给你一个登陆界面怎么测,详细点的,要有等价类、边界值等黑盒方法测试,设计用例有哪些
概括了8个方面,这些都是要重点考虑的:
1. 正确的用户名和密码,包括是合法的字符和合法长度
2. 错误的用户名,包括用户名含有非法字符、长度过长、长度过短
3. 正确的用户名和错误的密码,包括非法字符、长度过长或过短
4. 用户名和密码都为空
5. 正确的用户名,密码为空
6. 任意的用户名和密码,包括正确的或错误的,也可以为空
7. 检查UI友好性
检查登录界面设计是否合理,符合UI规范标准
界面符合习惯、美观,按钮对齐,输入框对齐,无错别字,字体大小协调,文字描述准确
8. 检查安全性(SQL注入等)
⑩ selenium 自动化测试登录,登录页面有一个随机图片,应该怎么处理
随机图片其实就是验证码问题,
目前测试环境解决验证码问题主要有几种:
OCR技术:通过识别图片来破解验证码。但识别率不高,若图片只是纯粹字母和数字组成的还好,中文或者图形等则基本抓瞎.
使用万能验证码,这种方法就是在判断验证的时候,如果遇到前台输入的是万能验证码,那就不要做验证码校验直接通过。
特定用户跳过验证码,这种方法就是如果遇到指定用户登录,那么不管输入什么验证码,验证码校验都通过。
使用hidden控件在页面上显示验证码,就是在使用验证码的页面上,加入一个隐藏的控件,该控件的内容就是验证码。虽然用户看不到但是自动化测试工具可以找到该控件,并获得验证码。当然隐藏控件中的验证码也可以使用加密的方法,自动化测试脚本得到加密的验证后,可以通过解密操作解密验证码。
上述的方法都需要开发对代码进行一定的修改,最好不要在生产环境上做,不然会造成安全漏洞。