??xml version="1.0" encoding="utf-8" standalone="yes"?>国产在线视频欧美一区二区三区,亚洲二区在线视频,综合av在线http://www.aygfsteel.com/paulwong/category/50525.htmlzh-cnSun, 16 Jan 2022 12:01:39 GMTSun, 16 Jan 2022 12:01:39 GMT60我眼中的开发和试http://www.aygfsteel.com/paulwong/archive/2014/12/01/420891.htmlpaulwongpaulwongMon, 01 Dec 2014 12:55:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/12/01/420891.htmlhttp://www.aygfsteel.com/paulwong/comments/420891.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/12/01/420891.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/420891.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/420891.html摘要Q在IT行业Q开发和试之间的关pM直是一个大家|z乐道的话题。那在周兆熊gQ开发和试是什么样的?他进行了l致的说明,q就两者的关系l出了一些徏议?nbsp;
在IT行业Q开发和试之间的关pM直是一个大家|z乐道的话题。在整个软g产品的生命周期中Q开发和试人员所做的工作分别对应不同的阶D,如图1所C?nbsp;


? 开发和试人员的分?/div>
工作内容 

从图1可以看出Q开发和试是一个上下游的关pR?nbsp;

具体而言Q开发h员主要做q几件事情: 

W一Q对软g需求说明书q行详细评审Q弄清楚要开发一个什么样的Y件?nbsp;

W二Q编写Y件详l设计、单元测试和集成试规程文档。Y件详l设计文档是最重要的文档,在里面,要写清楚自己E序的流E、函数设计、异怿护考虑{。在动手写程序之前,一定要Y件详l设计文档写好,{评审通过了再写代码?nbsp;

W三Q编写代码,用程序实现Y件的功能。很多h认ؓ的Y件开发就是写代码Q其实这是一U很狭隘的理解,写代码在整个开发流E中Q只占了很小的部分?nbsp;

W四Q程序写好之后,开发h员要对它q行单元试和集成测试也叫(自测Q,保E序的正性。这里就出现?#8220;试”二字Q但与Y件测试所做的“试”是不同的Q他们做的是“pȝ试”。等自测通过之后Qƈ且相x档也写好之后Q就可以提交E序版本Q供试人员q行试了?nbsp;

相对开发,试人员主要做这几g事情Q?nbsp;

W一Q参与Y仉求说明书的评审,对Y件要实现的功能有一个大致的了解?nbsp;

W二Q搭建测试环境。这个是很重要的Q也是比较难的事情。什么是“试环境”呢?是_不管什么YӞ都有个运行的条gQ如操作pȝcd、参数设|及配套软硬件设施等Q这些统UCؓ“环境”。ؓ了保证程序功能的正确性,要在软g发布之前Q尽量模拟Y件实际的q行环境Q这是搭徏试环境时要做的事情。很多Y件在正式商用之后出问题,是试的时候没有还原现场环境所致?nbsp;

W三Q对软gq行pȝ试q输出测试报告。所谓系l测试,是指将配套的所有Y仉q行hQ看一下所有的功能是否正常。当出现问题的时候,要及时和开发h员联p,以修正Y件缺陗?nbsp;

W四Q指导现Zh员安装Y件程序,q在必要的时候亲自出差到现场d装Y件。因此,试人员也可能会l常出差的?nbsp;

“三鼎立” 

开发h员的主要d是用E序完成软g需求,而测试h员的主要d则是保证E序功能的正性,他们做事的依据都是需求开发工E师~写的需求说明书?nbsp;

在实际的软g开发项目中Q需求开发工E师、Y件开发工E师和Y件测试工E师之间的交是很频J的Q如?所C?nbsp;


? 三类角色?#8220;三鼎立”

像“三国时期”的魏蜀?#8220;三鼎立”一P需求开发工E师、Y件开发工E师和Y件测试工E师所站的立场不同Q对软g的认识也不同。大安要相互讨论、协商,挑选出一套最佳的软g实现Ҏ?nbsp;

一些徏?/strong> 

在完成Y件研发的q程中,开发和试之间的关p非常的“微妙”Q时而合作如亲hQ时而争论如敌h。我认ؓQؓ了做出高质量的Y件品来Q开发和试需要做刎ͼ 

W一Q共同参与Y仉求文档的评审Q对E序要实现的功能有一个清晰的认识。如果对需求有疑问Q一定要当面提出来?nbsp;

W二Q在寚w求达成共识之后,软g开发h员严格按照Y仉求文档上的描q来~写E序Q如果在E序实现上有困难Q要提出来和大家讨论。Y件测试h员严格按照需求的描述来验证程序的功能Q如果发现程序实C需求不W,要及时与软g开发h员联p,大家共同程序问题解x?nbsp;

W三Q如果开发时间紧张、h手不I那么在开发h员编写程序的时候,试人员可以帮忙把测试环境搭建好。等E序~写好之后,开发h员便可以立即q行单元试和集成测试?nbsp;

W四Q不是需求有问题Q还是程序有~陷Q大安可以指出来。但注意要就事论事,不可Y仉题上升ؓ对特定个人的nd?nbsp;

W五Q虽然是各司其职Q也许还w处不同的部门,但大家的共同目标是一致的Q做客户满意的、高质量的Y件品。开发和试人员要ؓ了这个目标,一起努力?nbsp;

l束?/strong> 

一个Y件品的成功需要从各个环节上去把握Q因此用人的左手和右手的关系来比d发和试之间的关pL为恰当。好的Y件品需要开发和两手抓Q两手都要硬?nbsp;


paulwong 2014-12-01 20:55 发表评论
]]>
单元试、集成测试和pȝ试的不同之处[转]http://www.aygfsteel.com/paulwong/archive/2014/11/21/420382.htmlpaulwongpaulwongFri, 21 Nov 2014 01:09:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/11/21/420382.htmlhttp://www.aygfsteel.com/paulwong/comments/420382.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/11/21/420382.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/420382.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/420382.html
首先Q他们的试Ҏ不同Q?br />
单元试属于白盒试Q?br />
集成试属于灰盒试的范_


pȝ试属于黑盒试?br />




其次Q他们的考察范围不同Q也是他们试的重点不同:

单元试主要试单元内部的数据结构、逻辑控制、异常处理等{;

集成试主要试模块之间的接口和接口数据传递的关系Q以及模块组合后的整体功能;

pȝ试主要试整个pȝ相对于需求的W合度?




再次Q他们的基准不同Q?br />
单元试评估的主要是逻辑覆盖率;

集成试评估的主要是接口覆盖率;

pȝ试评估的是试用例寚w求规格的覆盖率?img src ="http://www.aygfsteel.com/paulwong/aggbug/420382.html" width = "1" height = "1" />

paulwong 2014-11-21 09:09 发表评论
]]>
一个用MOCK的测试REST的基于SPRING的单元测?/title><link>http://www.aygfsteel.com/paulwong/archive/2014/10/25/419025.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 25 Oct 2014 01:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/paulwong/archive/2014/10/25/419025.html</guid><wfw:comment>http://www.aygfsteel.com/paulwong/comments/419025.html</wfw:comment><comments>http://www.aygfsteel.com/paulwong/archive/2014/10/25/419025.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/paulwong/comments/commentRss/419025.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/paulwong/services/trackbacks/419025.html</trackback:ping><description><![CDATA[<a target="_blank">https://github.com/spring-projects/spring-sync-samples/tree/master/spring-rest-todos<br /></a><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span> todos;<br /><br /><span style="color: #0000FF; ">import</span> <span style="color: #0000FF; ">static</span> org.hamcrest.Matchers.*;<br /><span style="color: #0000FF; ">import</span> <span style="color: #0000FF; ">static</span> org.mockito.Mockito.*;<br /><span style="color: #0000FF; ">import</span> <span style="color: #0000FF; ">static</span> org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;<br /><span style="color: #0000FF; ">import</span> <span style="color: #0000FF; ">static</span> org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;<br /><br /><span style="color: #0000FF; ">import</span> java.util.Arrays;<br /><br /><span style="color: #0000FF; ">import</span> org.junit.Before;<br /><span style="color: #0000FF; ">import</span> org.junit.Ignore;<br /><span style="color: #0000FF; ">import</span> org.junit.Test;<br /><span style="color: #0000FF; ">import</span> org.junit.runner.RunWith;<br /><span style="color: #0000FF; ">import</span> org.mockito.InjectMocks;<br /><span style="color: #0000FF; ">import</span> org.mockito.Mock;<br /><span style="color: #0000FF; ">import</span> org.mockito.Mockito;<br /><span style="color: #0000FF; ">import</span> org.mockito.MockitoAnnotations;<br /><span style="color: #0000FF; ">import</span> org.springframework.beans.factory.annotation.Autowired;<br /><span style="color: #0000FF; ">import</span> org.springframework.http.MediaType;<br /><span style="color: #0000FF; ">import</span> org.springframework.test.context.ContextConfiguration;<br /><span style="color: #0000FF; ">import</span> org.springframework.test.context.junit4.SpringJUnit4ClassRunner;<br /><span style="color: #0000FF; ">import</span> org.springframework.test.context.web.WebAppConfiguration;<br /><span style="color: #0000FF; ">import</span> org.springframework.test.web.servlet.MockMvc;<br /><span style="color: #0000FF; ">import</span> org.springframework.test.web.servlet.setup.MockMvcBuilders;<br /><span style="color: #0000FF; ">import</span> org.springframework.web.context.WebApplicationContext;<br /><br /><span style="color: #0000FF; ">import</span> com.fasterxml.jackson.databind.ObjectMapper;<br /><br /><span style="color: #008000; ">/**</span><span style="color: #008000; "><br /> * </span><span style="color: #808080; ">@author</span><span style="color: #008000; "> Roy Clarkson<br /> </span><span style="color: #008000; ">*/</span><br />@RunWith(SpringJUnit4ClassRunner.<span style="color: #0000FF; ">class</span>)<br />@WebAppConfiguration<br />@ContextConfiguration(classes = Application.<span style="color: #0000FF; ">class</span>)<br />@Ignore<br /><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> MainControllerTest {<br /><br />    @Autowired<br />    <span style="color: #0000FF; ">private</span> WebApplicationContext context;<br /><br />    @Mock<br />    <span style="color: #0000FF; ">private</span> TodoRepository repository;<br /><br />    @InjectMocks<br />    TodoController mainController;<br /><br />    <span style="color: #0000FF; ">private</span> MockMvc mvc;<br /><br />    @Before<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> setUp() {<br />        MockitoAnnotations.initMocks(<span style="color: #0000FF; ">this</span>);<br />        mvc = MockMvcBuilders.standaloneSetup(mainController).build();<br />    }<br /><br />    @Test<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testList() <span style="color: #0000FF; ">throws</span> Exception {<br />        <span style="color: #0000FF; ">final</span> Todo a = <span style="color: #0000FF; ">new</span> Todo(1L, "a", <span style="color: #0000FF; ">false</span>);<br />        <span style="color: #0000FF; ">final</span> Todo b = <span style="color: #0000FF; ">new</span> Todo(2L, "b", <span style="color: #0000FF; ">false</span>);<br />        <span style="color: #0000FF; ">final</span> Todo c = <span style="color: #0000FF; ">new</span> Todo(3L, "c", <span style="color: #0000FF; ">false</span>);<br />        when(repository.findAll()).thenReturn(Arrays.asList(a, b, c));<br /><br />        mvc.perform(get("/todos")<br />                    .accept(MediaType.APPLICATION_JSON))<br />                .andExpect(status().isOk())<br />                .andExpect(jsonPath("$", hasSize(3)))<br />                .andExpect(jsonPath("$[0].id", is(1)))<br />                .andExpect(jsonPath("$[0].description", is("a")))<br />                .andExpect(jsonPath("$[0].complete", is(<span style="color: #0000FF; ">false</span>)))<br />                .andExpect(jsonPath("$[1].id", is(2)))<br />                .andExpect(jsonPath("$[1].description", is("b")))<br />                .andExpect(jsonPath("$[1].complete", is(<span style="color: #0000FF; ">false</span>)))<br />                .andExpect(jsonPath("$[2].id", is(3)))<br />                .andExpect(jsonPath("$[2].description", is("c")))<br />                .andExpect(jsonPath("$[2].complete", is(<span style="color: #0000FF; ">false</span>)));<br /><br />         verify(repository, times(1)).findAll();<br />         verifyNoMoreInteractions(repository);<br />    }<br /><br />    @Ignore<br />    @Test<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testPatch() <span style="color: #0000FF; ">throws</span> Exception {<br /><br />    }<br /><br />    @Test<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testCreate() <span style="color: #0000FF; ">throws</span> Exception {<br />        <span style="color: #0000FF; ">final</span> Todo todo = <span style="color: #0000FF; ">new</span> Todo(1L, "a", <span style="color: #0000FF; ">false</span>);<br />        ObjectMapper objectMapper = <span style="color: #0000FF; ">new</span> ObjectMapper();<br />        <span style="color: #0000FF; ">final</span> <span style="color: #0000FF; ">byte</span>[] bytes = objectMapper.writeValueAsBytes(todo);<br /><br />        when(repository.save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>))).thenReturn(todo);<br /><br />        mvc.perform(post("/todos")<br />                    .accept(MediaType.APPLICATION_JSON)<br />                    .contentType(MediaType.APPLICATION_JSON)<br />                    .content(bytes))<br />                .andExpect(status().isOk())<br />                .andExpect(jsonPath("$.id", is(1)))<br />                .andExpect(jsonPath("$.description", is("a")))<br />                .andExpect(jsonPath("$.complete", is(<span style="color: #0000FF; ">false</span>)));<br /><br />        verify(repository, times(1)).save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>));<br />        verifyNoMoreInteractions(repository);<br />    }<br /><br />    @Test<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testUpdateSameIds() <span style="color: #0000FF; ">throws</span> Exception {<br />        <span style="color: #0000FF; ">final</span> Todo updatedTodo = <span style="color: #0000FF; ">new</span> Todo(1L, "z", <span style="color: #0000FF; ">true</span>);<br />        ObjectMapper objectMapper = <span style="color: #0000FF; ">new</span> ObjectMapper();<br />        <span style="color: #0000FF; ">byte</span>[] bytes = objectMapper.writeValueAsBytes(updatedTodo);<br /><br />        when(repository.save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>))).thenReturn(updatedTodo);<br /><br />        mvc.perform(put("/todos/{id}", 1L)<br />                    .contentType(MediaType.APPLICATION_JSON)<br />                    .content(bytes))<br />                .andExpect(status().isNoContent());<br /><br />        verify(repository, times(0)).delete(1L);<br />        verify(repository, times(1)).save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>));<br />        verifyNoMoreInteractions(repository);<br />    }<br /><br />    @Test<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testUpdateDifferentIds() <span style="color: #0000FF; ">throws</span> Exception {<br />        <span style="color: #0000FF; ">final</span> Todo updatedTodo = <span style="color: #0000FF; ">new</span> Todo(99L, "z", <span style="color: #0000FF; ">true</span>);<br />        ObjectMapper objectMapper = <span style="color: #0000FF; ">new</span> ObjectMapper();<br />        <span style="color: #0000FF; ">byte</span>[] bytes = objectMapper.writeValueAsBytes(updatedTodo);<br /><br />        when(repository.save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>))).thenReturn(updatedTodo);<br /><br />        mvc.perform(put("/todos/{id}", 1L)<br />                    .contentType(MediaType.APPLICATION_JSON)<br />                    .content(bytes))<br />                .andExpect(status().isNoContent());<br /><br />        verify(repository, times(1)).delete(1L);<br />        verify(repository, times(1)).save(Mockito.any(Todo.<span style="color: #0000FF; ">class</span>));<br />        verifyNoMoreInteractions(repository);<br />    }<br /><br />    @Test<br />    <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> testDelete() <span style="color: #0000FF; ">throws</span> Exception {<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">        this is how to test a void method with Mockito<br /></span><span style="color: #008000; ">//</span><span style="color: #008000; ">        doThrow(new IllegalArgumentException()).when(repository).delete(null);</span><span style="color: #008000; "><br /></span><br />        mvc.perform(delete("/todos/{id}", 1L))<br />                .andExpect(status().isNoContent());<br />    }<br /><br />}</div><img src ="http://www.aygfsteel.com/paulwong/aggbug/419025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/paulwong/" target="_blank">paulwong</a> 2014-10-25 09:42 <a href="http://www.aygfsteel.com/paulwong/archive/2014/10/25/419025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>50道外企Y件测试面试题http://www.aygfsteel.com/paulwong/archive/2014/09/23/418182.htmlpaulwongpaulwongTue, 23 Sep 2014 02:37:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/09/23/418182.htmlhttp://www.aygfsteel.com/paulwong/comments/418182.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/09/23/418182.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/418182.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/418182.html
  • What types of documents would you need for QAQ?QCQ?and Testing?
  • What did you include in a test plan?
  • Describe any bug you remember.
  • What is the purpose of the testing?
  • What do you like (not like) in this job?
  • What is quality assurance?
  • What is the difference between QA and testing?
  • How do you scopeQ?organizeQ?and execute a test project?
  • What is the role of QA in a development project?
  • What is the role of QA in a company that produces software?
  • Define quality for me as you understand it
  • Describe to me the difference between validation and verification.
  • Describe to me what you see as a process. Not a particular processQ?just the basics of having a process.
  • Describe to me when you would consider employing a failure mode and effect analysis.
  • Describe to me the Software Development Life Cycle as you would define it.
  • What are the properties of a good requirement?
  • How do you differentiate the roles of Quality Assurance Manager and Project Manager?
  • Tell me about any quality efforts you have overseen or implemented. Describe some of the challenges you faced and how you overcame them.
  • How do you deal with environments that are hostile to quality change efforts?
  • In generalQ?how do you see automation fitting into the overall process of testing?
    How do you promote the concept of phase containment and defect prevention?
  • If you come onboardQ?give me a general idea of what your first overall tasks will be as far as starting a quality effort.
  • What kinds of testing have you done?
  • Have you ever created a test plan?
  • Have you ever written test cases or did you just execute those written by others?
  • What did your base your test cases?
  • How do you determine what to test?
  • How do you decide when you have ‘tested enough?’
  • How do you test if you have minimal or no documentation about the product?
  • Describe me to the basic elements you put in a defect report?
  • How do you perform regression testing?
  • At what stage of the life cycle does testing begin in your opinion?
  • How do you analyze your test results? What metrics do you try to provide?
  • Realising you won’t be able to test everything – how do you decide what to test first?
  • Where do you get your expected results?
  • If automating – what is your process for determining what to automate and in what order?
  • In the pastQ?I have been asked to verbally start mapping out a test plan for a common situationQ?such as an ATM. The 36 interviewer might sayQ?“Just thinking out loudQ?if you were tasked to test an ATMQ?what items might you test plan 37 include?” These type questions are not meant to be answered conclusivelyQ?but it is a good way for the interviewer to see 38 how you approach the task.
  • If you’re given a program that will average student gradesQ?what kinds of inputs would you use?
  • Tell me about the best bug you ever found.
  • What made you pick testing over another career?
  • What is the exact difference between Integration & System testingQ?give me examples with your project.
  • How did you go about testing a project?
  • When should testing start in a project? Why?
  • How do you go about testing a web application?
  • Difference between Black & White box testing
  • What is Configuration management? Tools used?
  • What do you plan to become after say 2-5yrs (Ex: QA ManagerQ?Why?)
  • Would you like to work in a team or aloneQ?why?
  • Give me 5 strong & weak points of yours.


  • paulwong 2014-09-23 10:37 发表评论
    ]]>
    整合试http://www.aygfsteel.com/paulwong/archive/2014/04/20/412701.htmlpaulwongpaulwongSun, 20 Apr 2014 02:33:00 GMThttp://www.aygfsteel.com/paulwong/archive/2014/04/20/412701.htmlhttp://www.aygfsteel.com/paulwong/comments/412701.htmlhttp://www.aygfsteel.com/paulwong/archive/2014/04/20/412701.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/412701.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/412701.htmlhttp://arquillian.org/guides/getting_started_zh_cn/

    paulwong 2014-04-20 10:33 发表评论
    ]]>
    试q程http://www.aygfsteel.com/paulwong/archive/2012/06/01/379703.htmlpaulwongpaulwongThu, 31 May 2012 16:07:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/06/01/379703.htmlhttp://www.aygfsteel.com/paulwong/comments/379703.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/06/01/379703.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/379703.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/379703.html
  • 单元试
    有三个?br />逻辑单元试Q就是方法别的试Q方法中依赖的其他层对象用MOCK模拟Q通常只针Ҏ制层
    整合单元试Q联合几个层来测试,是针对服务层,其依赖的持久不能模拟Q数据库要打开Q但可以用内存数据库
    界面单元试Qؓ了保证界面不出错Q还包括面数据验证不通过时的试
  • 持箋构徏和代码质量测?br />试是否构徏成功Q代码质量和覆盖率是否达到标?/li>
  • pȝ整合试
  • 功能试
    通过UI验证是否W合pȝ用例和业务规则,主要看输入和输出
  • pȝ质量试
    主要指性能试是否W合非功能需求,q发用户和负载是否符合,及安全性和高可用?/li>
  • 用户接受试
    模拟真实环境Q根据用h册和操作程操作Q测试是否符合业务需?/li>

    paulwong 2012-06-01 00:07 发表评论
    ]]>JMeter使用介绍http://www.aygfsteel.com/paulwong/archive/2012/05/20/378601.htmlpaulwongpaulwongSun, 20 May 2012 03:05:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/05/20/378601.htmlhttp://www.aygfsteel.com/paulwong/comments/378601.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/05/20/378601.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/378601.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/378601.htmlhttp://www.hitb.com.cn/web/guest/bbs/-/message_boards/message/13785#_19_message_13785

    在录制过E中Q如果想L讨厌的JS或CSSQ可以在HTTP代理服务器的不包含样式中dQ?br />
    .*\.css
    .*\.js
    .*\.gif
    .*\.jpg

    在MAVEN中运行JMETERQ?br />https://bitbucket.org/hascode/jmeter-multiuser-profiling/src

    paulwong 2012-05-20 11:05 发表评论
    ]]>
    Watij and Mavenhttp://www.aygfsteel.com/paulwong/archive/2012/01/03/367792.htmlpaulwongpaulwongTue, 03 Jan 2012 14:08:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/01/03/367792.htmlhttp://www.aygfsteel.com/paulwong/comments/367792.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/01/03/367792.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/367792.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/367792.html

    First, download the waitj bundle and unzip it.

    Then, use maven to manually install each dependency in the lib folder
    like so:
    mvn install:install-file -Dfile=webspec.jar -DartifactId=webspec -
    DgroupId=watij -Dversion=1.3.1 -Dpackaging=jar

    You can also do deploy:deploy-file if you want to put them into a
    central maven repo.

    Of course, you don't need to do this for log4j, junit, slf4j. I did
    it for all the others for speed, registering them under "watij" and
    version 1.3.1

    Got this working in Eclipse, a simple login test case, yipee!

    Here is the POM snippet for my project:

      <dependencies> 
        
    <dependency> 
          
    <groupId>junit</groupId> 
          
    <artifactId>junit</artifactId> 
          
    <version>4.8.2</version> 
          
    <scope>test</scope> 
        
    </dependency> 


        
    <!-- WATIJ --> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>webspec</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>engine-gecko</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>engine-ie</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>engine-webkit</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>jniwrap-native</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>jxbrowser</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>MozillaGlue</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>MozillaInterfaces</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>mshtml</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>runtime</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>tuxpack</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>winpack</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>xulrunner-linux</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>xulrunner-linux64</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>xulrunner-mac</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>watij</groupId> 
          
    <artifactId>xulrunner-windows</artifactId> 
          
    <version>1.3.1</version> 
        
    </dependency> 


        
    <dependency> 
          
    <groupId>log4j</groupId> 
          
    <artifactId>log4j</artifactId> 
          
    <version>1.2.15</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>org.slf4j</groupId> 
          
    <artifactId>slf4j-api</artifactId> 
          
    <version>1.5.8</version> 
        
    </dependency> 
        
    <dependency> 
          
    <groupId>org.slf4j</groupId> 
          
    <artifactId>slf4j-log4j12</artifactId> 
          
    <version>1.5.8</version> 
        
    </dependency> 





    paulwong 2012-01-03 22:08 发表评论
    ]]>
    Watij入门 http://www.aygfsteel.com/paulwong/archive/2012/01/03/367791.htmlpaulwongpaulwongTue, 03 Jan 2012 14:01:00 GMThttp://www.aygfsteel.com/paulwong/archive/2012/01/03/367791.htmlhttp://www.aygfsteel.com/paulwong/comments/367791.htmlhttp://www.aygfsteel.com/paulwong/archive/2012/01/03/367791.html#Feedback0http://www.aygfsteel.com/paulwong/comments/commentRss/367791.htmlhttp://www.aygfsteel.com/paulwong/services/trackbacks/367791.html阅读全文

    paulwong 2012-01-03 22:01 发表评论
    ]]>
    վ֩ģ壺 | | ʲ| ˳| | | | | | | ̩| | ƽ| | ݰ| | ǫ| | | ͬ| Ȫ| ɽ| | | Դ| | Ϫ| ˳| ԭ| | | | | | | | | | ߮| ӻ| ԭ|